腾讯2016研发工程师编程题微信红包
2016-08-04 15:07
253 查看
在一组数的编码中,若任意两个相邻的代码只有一位二进制数不同, 则称这种编码为格雷码(Gray Code),请编写一个函数,使用递归的方法生成N位的格雷码。
给定一个整数n,请返回n位的格雷码,顺序为从0开始。
测试样例:
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
a275
< n / 2) return 0; // 若没有金额超过总数的一半,返回0 return number;
} }
给定一个整数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
a275
< n / 2) return 0; // 若没有金额超过总数的一半,返回0 return number;
} }
相关文章推荐
- 微信支付java版本之获取Access_token
- 微信支付java版本之查询订单
- 做微信公众平台开发者用那个云服务器比较合适,SAE?BAE?还是阿里云?
- 微信网页授权Java实现
- 微信公众平台java开发教程之验证服务器有效性
- 类似微信文本输入框实现,底部评论输入View,随着文字的增加,textView自增长高度
- 关于微信支付遇到的一个坑
- 微信公众账号 Senparc.Weixin.MP SDK 开发教程 索引
- Android第三方微信支付教程
- 微信Demo导入遇到的问题
- 微信抢红包插件项目
- 微信抢红包插件项目
- 微信支付不回调支付成功的方法,这是为什么
- iOS微信朋友圈与摇一摇
- Java小程序之桌球动起来!
- 微信公众平台开发(十一) 功能整合
- 微信公众平台开发(十) 消息回复总结
- 微信公众平台开发(九) 数据库操作
- 微信公众平台开发(八) 自定义菜单功能开发
- 微信公众平台开发(七) 聊天机器人功能开发