热门标签 | HotTags
当前位置:  开发笔记 > 开放平台 > 正文

腾讯2016研发工程师编程题微信红包

在一组数的编码中,若任意两个相邻的代码只有一位二进制数不同,则称这种编码为格雷码(GrayCode),请编写一个函数,使用递归的方法生成N位的格雷码。给定一个整数n,请

在一组数的编码中,若任意两个相邻的代码只有一位二进制数不同, 则称这种编码为格雷码(Gray Code),请编写一个函数,使用递归的方法生成N位的格雷码。

给定一个整数n,请返回n位的格雷码,顺序为从0开始。

测试样例:
1
返回:["0","1"]


import java.util.Arrays;


public class Gift {


/**

* 思路1:排序,找到出现次数最多的金额。输出该数字

* @param gifts

* @param n

* @return

*/

public int getValue(int[] gifts, int n) {

Arrays.sort(gifts); // 排序

int count = 1; // 次数,

int max = 1; // 当前最高次数

int number = 0; // 金额超过总数的一半的红包金额

for (int i = 0; i <gifts.length; i++) {

count = 1; // 重置

for (int j = i + 1; j <gifts.length; j++) {

if (gifts[i] == gifts[j]) { // 如果金额相等,count++

count++;


} else {

if (count > max) {

max = count;

number = gifts[i]; // 纪录当前出现次数最高的金额

}


break; // 如果不等, 跳出循环

}

}

}

if (max <n / 2)

return 0; // 若没有金额超过总数的一半,返回0

return number;


}

}




推荐阅读
author-avatar
互联网控军
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有