Leetcode 89. Gray Code
来源:互联网 发布:js 禁用y轴滑动 编辑:程序博客网 时间:2024/05/09 03:53
Question
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 [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.
Code
非递归
public List<Integer> grayCode(int n) { List<Integer> results = new ArrayList<>(); results.add(0); if (n > 0) { results.add(1); } int mask = 1; for (int i = 2; i <= n; i++) { mask <<= 1; for (int j = results.size() - 1; j >= 0; j--) { int t = results.get(j).intValue(); results.add(t | mask); } } return results; }
递归
public List<Integer> grayCode2(int n) { if (n == 0) { return Arrays.asList(0); } List<Integer> results = new ArrayList<>(); List<Integer> res = grayCode2(n - 1); results.addAll(res); int mask = 1 << (n - 1); for (int j = res.size() - 1; j >= 0; j--) { int t = res.get(j).intValue(); results.add(t | mask); } return results; }
0 0
- [LeetCode]89.Gray Code
- LeetCode 89. Gray Code
- [Leetcode] 89. Gray Code
- LeetCode --- 89. Gray Code
- [leetcode] 89.Gray Code
- 89. Gray Code LeetCode
- [LeetCode]89. Gray Code
- Leetcode 89. Gray Code
- [leetcode] 89. Gray Code
- LeetCode *** 89. Gray Code
- [LeetCode]89. Gray Code
- leetcode 89. Gray Code
- leetcode 89. Gray Code
- [leetcode]89. Gray Code
- LeetCode-89.Gray Code
- LeetCode 89. Gray Code
- LeetCode - 89. Gray Code
- [LeetCode] 89. Gray Code
- JSOI2015
- 包含min的栈
- 迭代器失效场景
- Jetty代码实现启动
- 栈的弹出顺序
- Leetcode 89. Gray Code
- android计时器类CountDownTime的运用及扩展
- hdu 1711Number Sequence(kmp模板题)
- 拓展欧几里得-求AX+BY=C中X和Y的值
- sysvsem,sysvshm,sysvmsg,PHP的事件驱动化设计
- BST的后序遍历
- Android:定时的实现
- 【转】Oracle中 NLS_DATE_FORMAT的设置方法
- java 对文件操作 文件(夹)新建、复制、删除、移动