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;
}
};
推荐阅读
- 【Leetcode/Python】001-Two|【Leetcode/Python】001-Two Sum
- leetcode|leetcode 92. 反转链表 II
- 二叉树路径节点关键值和等于目标值(LeetCode--112&LeetCode--113)
- LeetCode算法题-11.|LeetCode算法题-11. 盛最多水的容器(Swift)
- LeetCode(03)Longest|LeetCode(03)Longest Substring Without Repeating Characters
- Leetcode|Leetcode No.198打家劫舍
- [leetcode数组系列]1两数之和
- 它怎会来到此地这些斜眼的人中间(|它怎会来到此地这些斜眼的人中间?| 格雷夫斯《残币》)
- 数据结构和算法|LeetCode 的正确使用方式
- leetcode|今天开始记录自己的力扣之路