【LeetCode】89. Gray Code解法及注释
2016-04-12 20:02
495 查看
89. Gray Code
Total
Accepted: 58433 Total
Submissions: 161645 Difficulty: Medium
The gray code is a binary numeral system where two successive values differ in only one bit.
Given a non-negative integer n representing the total number of bits in the code, print the sequence of gray code. A gray code sequence must begin with 0.
For example, given n = 2, return
code sequence is:
Note:
For a given n, a gray code sequence is not uniquely defined.
For example,
above definition.
For now, the judge is able to judge based on one instance of gray code sequence. Sorry about that.
【分析】
题目很简单,给定二进制位数n,则对应数据范围:[0,(1<<n)-1],一次循环遍历便可得到所有数据,由于只要求从0开始而不要求排序,满足要求的结果有很多种,但是目前LeetCode的测试案例库使能识别一种形式的解,所以不再深究:
【解法】
Total
Accepted: 58433 Total
Submissions: 161645 Difficulty: Medium
The gray code is a binary numeral system where two successive values differ in only one bit.
Given a non-negative integer n representing the total number of bits in the code, print the sequence of gray code. A gray code sequence must begin with 0.
For example, given n = 2, return
[0,1,3,2]. Its gray
code sequence is:
00 - 0 01 - 1 11 - 3 10 - 2
Note:
For a given n, a gray code sequence is not uniquely defined.
For example,
[0,2,3,1]is also a valid gray code sequence according to the
above definition.
For now, the judge is able to judge based on one instance of gray code sequence. Sorry about that.
【分析】
题目很简单,给定二进制位数n,则对应数据范围:[0,(1<<n)-1],一次循环遍历便可得到所有数据,由于只要求从0开始而不要求排序,满足要求的结果有很多种,但是目前LeetCode的测试案例库使能识别一种形式的解,所以不再深究:
【解法】
class Solution { public: vector<int> grayCode(int n) { vector<int> result; if(n<0)return result; int maxValue; maxValue=1<<n; for(int i=0;i<maxValue;i++) { result.push_back(i); } return result; } };
相关文章推荐
- c++从文件中读取特定字符串问题的总结
- 编译安装mysql5.6
- JavaScript解析Json中的对象
- JavaScript中if的表达式自动转换为false的情况
- Android中实现从SD卡的Gallery画廊带回图片
- Android:Android面试准备二
- String 的基本用法
- 测试IO高低电平是遇到的问题(调试工装遇到的问题)
- C\C++精华总结
- http状态码详解
- 嵌入式 uboot以及kernel添加看门狗临时记录(个人记录未整理乱)
- hdu 5175 Misaki's Kiss again
- HDU 1024 Max Sum Plus Plus(求m个不相交连续子序列最大和/01背包)
- 搜索0之1001
- Windows环境下IntelliJ14控制台乱码问题的解决
- Jsonp学习记录
- JavaScript形参和实参
- Linux --进程间通信--消息队列
- 第七周项目一-三个函数在一个程序中(5)
- [OJ]24点游戏之递归实现(JAVA)