89. Gray Code
来源:互联网 发布:潘任美事件公知 编辑:程序博客网 时间:2024/04/27 13:57
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 - 001 - 111 - 310 - 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.
思路:
0000 0
0001 1
0011 3
0010 2
0110 6
0111 7
0101 5
0100 4
可以看出,第i个值等于第2i-pow(2,count2bit(i))的值加上pow(2,count2bit(i))
代码如下(已通过leetcode)
public List<Integer> grayCode(int n) {
List<Integer> list=new ArrayList<Integer>();
if(n==0) {
list.add(0);
return list;
}
list.add(0);
list.add(1);
int i=2;
while(i<=n) {
int length=list.size();
for(int j=length-1;j>=0;j--) {
list.add(list.get(j)+(int)Math.pow(2, i-1));
}
i++;
}
return list;
}
}
- [LeetCode]89.Gray Code
- LeetCode 89. Gray Code
- [Leetcode] 89. Gray Code
- LeetCode --- 89. Gray Code
- [leetcode] 89.Gray Code
- 89. Gray Code
- 89. Gray Code
- 89. Gray Code LeetCode
- 89. Gray Code
- [LeetCode]89. Gray Code
- 89. Gray Code
- 89. Gray Code
- 89. Gray Code
- Leetcode 89. Gray Code
- [leetcode] 89. Gray Code
- 89. Gray Code
- LeetCode *** 89. Gray Code
- 89. Gray Code
- Unity中HideInInspector和SerializeField
- 【Android】【线程】synchronized、wait、notify、notifyAll
- KNN与KD-tree
- nefu500(二分,最大流)
- 【USACO题库】3.2.3 Spinning Wheels纺车的轮子
- 89. Gray Code
- 欢迎使用CSDN-markdown编辑器
- 某梆企业版加固脱壳及抽代码还原方法
- android使用matrix控制图片的旋转,缩放
- 技术记录---杀死应用进程账号数据被清空问题
- poj 3233(矩阵快速幂+二分)
- 在word中插入高亮缩进的代码
- 统计代码的行数
- 怎么用oracle数据泵导数据