[LeetCode]Gray Code
2017-04-21 19:50
316 查看
题目:给定一个数字n,表示二进制数字的位数,求出n位格雷码相应的十进制数
比如,给定n=2,则返回
[0,1,3,2]. 它的格雷码序列是:
00 - 0 01 - 1 11 - 3 10 - 2算法:
二进制 二进制右移 格雷码 -------------------------- 000 000 000 001 000 001 010 001 011 011 001 010 100 010 110 101 010 110 110 011 101 111 011 100 得出 : garyCode = x ^ (x>>1)
public class Solution { /** * Algorithm: * * binary binary>>1 gray * -------------------------- * 000 000 000 * 001 000 001 * 010 001 011 * 011 001 010 * 100 010 110 * 101 010 110 * 110 011 101 * 111 011 100 * * find : garyCode = x ^ (x>>1) * */ public List<Integer> grayCode(int n) { List<Integer> grayCodeList = new ArrayList<Integer>(); int nLoops = (1 << n); // 2^n-1 for (int i=0; i<nLoops; ++i) { int grayCode = (i ^ (i >> 1)); grayCodeList.add(grayCode); } return grayCodeList; } }
相关文章推荐
- [LeetCode]Gray Code
- leetcode Gray Code
- leetcode之Gray code
- leetcode---Gray Code
- Leetcode: Gray Code
- LeetCode: Gray Code
- LeetCode89:Gray Code
- [leetcode] Gray Code
- leetcode_089 Gray Code
- leetcode 089 —— Gray Code
- [LeetCode]89 Gray Code
- [leetcode 89] Gray Code---实现格雷码
- [LeetCode] 格雷码(Gray Code)
- [LeetCode] Gray Code
- LeetCode——Gray Code
- 【LeetCode】Gray Code
- LeetCode :: Gray Code[正确解答,真正考察点剖析]
- leetcode 112: Gray Code
- [leetcode] 89. Gray Code 解题报告
- [leetCode] Gray Code