Leetcode|Leetcode 89. 格雷编码

【Leetcode|Leetcode 89. 格雷编码】X_Y 如果X中1的个数是奇数那么_从1开始遍历,否则从0开始
以三为例

X为空从0开始{_Y【0、1】 X = 0偶数个{0_Y【0、1】 X = 00偶数个{00_【0、1】 000 001 } X = 01奇数个{01_【1、0】 011 010 } } X = 1奇数个{ 1_Y【1、0】 X = 11偶数个{11_【0、1】 110 111 } X = 10奇数个{10_【1、0】 101 100 } } }

class Solution { public: vector ans; void dfs(int index, int f, int x) { if (index <0) { ans.push_back(x); return; } dfs(index - 1, 0, x + (1 << index)*f); dfs(index - 1, 1, x + (1 << index)*(f ^ 1)); } vector grayCode(int n) { dfs(n - 1, 0, 0); return ans; } };

    推荐阅读