Leetcode 89. Gray Code
2017-12-20 21:38
316 查看
class Solution { public: vector<int> grayCode(int n) { if (n == 0) return vector<int>(1); size_t size = pow(2, n); vector<int> ret(size); ret[0] = 0; ret[1] = 1; if (n == 1) return ret; size_t i = 2; size_t ri = 1; int num = 2; while (i != size) { ret[i] = ret[ri] + num; if (ri == 0) { ri = i; num *= 2; } else { --ri; } ++i; } return ret; } };
神方法,还不是太理解
class Solution { public: vector<int> grayCode(int n) { bitset<32> b; vector<int> ret; backTrack(ret, b, n); return ret; } private: void backTrack(vector<int>& ret, bitset<32>& b, int n) { if (n == 0) { ret.push_back(b.to_ulong()); return; } else { backTrack(ret, b, n - 1); b.flip(n - 1); backTrack(ret, b, n - 1); } } };
相关文章推荐
- leetcode 89. Gray Code
- leetcode 89 Gray Code
- LeetCode 89 Gray Code
- [leetcode 89] Gray Code---实现格雷码
- (java)leetcode-89:Gray Code
- 【LeetCode】89. Gray Code (2 solutions)
- leetcode89 Gray Code
- leetcode 89: Gray Code
- [leetcode] 89.Gray Code
- 【LeetCode】89. Gray Code解法及注释
- leetcode 89. Gray Code 按照index递归DFS解决 + Grey码生成公式 + 位运算直接计算
- leetcode 89. Gray Code
- leetcode_89题——Gray Code(回溯法)
- [leetcode] 【数组】 89. Gray Code
- LeetCode89:Gray Code
- [leetcode] #89 Gray Code
- LeetCode 89. Gray Code
- [LeetCode]89. Gray Code
- LeetCode 89 Gray Code
- [LeetCode]89. Gray Code