【题解】【排列组合】【回溯】【Leetcode】Gray Code
2014-02-13 18:36
417 查看
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
Note:
For a given n, a gray code sequence is not uniquely defined.
For example,
For now, the judge is able to judge based on one instance of gray code sequence. Sorry about that.
思路:
这题其实挺简单,思路可以联想到组合问题中的回溯,改变第n位,然后再利用其余n-1位的组合重新组成n位的组合。如果在改变第n位的时候,保持其余n-1位不动,再保持第n位将其余n-1位的序列反着推回去就OK了。
感觉程序没有写出来的必要,举个栗子反而更清楚 n = 4
0 0 0 0
0 0 0 1
0 0 1 |1
0 0 1 |0
0 1 |1 0
0 1 |1 1
0 1 |0 1
0 1 |0 0
1 |1 0 0
1 |1 0 1
1 |1 1 1
1 |1 1 0
1 |0 1 0
1 |0 1 1
1 |0 0 1
1 |0 0 0
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 - 0 01 - 1 11 - 3 10 - 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.
思路:
这题其实挺简单,思路可以联想到组合问题中的回溯,改变第n位,然后再利用其余n-1位的组合重新组成n位的组合。如果在改变第n位的时候,保持其余n-1位不动,再保持第n位将其余n-1位的序列反着推回去就OK了。
感觉程序没有写出来的必要,举个栗子反而更清楚 n = 4
0 0 0 0
0 0 0 1
0 0 1 |1
0 0 1 |0
0 1 |1 0
0 1 |1 1
0 1 |0 1
0 1 |0 0
1 |1 0 0
1 |1 0 1
1 |1 1 1
1 |1 1 0
1 |0 1 0
1 |0 1 1
1 |0 0 1
1 |0 0 0
相关文章推荐
- 【题解】【排列组合】【回溯】【Leetcode】Generate Parentheses
- 【题解】【排列组合】【素数】【Leetcode】Unique Paths
- leetcode之深搜递归回溯类之排列与组合类-----77/39/40/216/317 组合 78/90/368 子排列 22/79/93/131 典型递归回溯 46/47 全排列
- Leetcode526. 回溯法之应用(一):统计数组排列数目
- 【VIP】【leetcode题解】【回溯】【97.5】【M】Subsets
- 【leetcode 排列组合问题】Next Permutation | Permutations | Permutations II | Permutation Sequence
- 排列组合和回溯算法-面试题
- leetcode | Permutations | 利用深度优先(DFS)的方法排列组合列表
- LeetCode-Combination Sum-组合加和-回溯
- 排列组合与回溯算法
- LeetCode题解:Gray Code
- leetcode-Combinations 复习复习排列组合
- [leetcode][回溯] Gray Code
- 回溯实现数字的排列组合
- LeetCodet题解--17. Letter Combinations of a Phone Number(所有数字键盘组合所对应的所有字符集合)
- Leetcode中的组合排列问题:Permutations,Combinations,Letter Combinations of a Phone Number
- 回溯题目/排列、组合、子集问题
- LeetCode排列组合问题合集
- 回溯实现数字的排列组合
- LeetCode60 n个数的排列组合找出第k个排列