LeetCode 题解(158): Gray Code
来源:互联网 发布:天天飞车礼包 软件 编辑:程序博客网 时间:2024/05/18 09:26
题目:
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 - 001 - 111 - 310 - 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.
题解:当前Gray Code等于前一个Gray Code的逆序加1 << n - 1。
C++版:
class Solution {public: vector<int> grayCode(int n) { vector<int> result(1, 0); if(n == 0) return result; result.push_back(1); for(int i = 1; i < n; i++) { for(int j = result.size() - 1; j >= 0; j--) { result.push_back(result[j] + (1 << i)); } } return result; }};
Java版:
public class Solution { public List<Integer> grayCode(int n) { List<Integer> result = new ArrayList<Integer>(); result.add(0); if(n == 0) return result; result.add(1); for(int i = 1; i < n; i++) { for(int j = result.size() - 1; j >= 0; j--) { result.add(result.get(j) + (1 << i)); } } return result; }}
Python版:
class Solution: # @param {integer} n # @return {integer[]} def grayCode(self, n): if n == 0: return [0] result = [0, 1] for i in range(2, n+1): for j in range(len(result) - 1, -1, -1): result.append((1 << i - 1) + result[j]) return result
0 0
- LeetCode 题解(158): Gray Code
- LeetCode题解:Gray Code
- leetcode题解-89. Gray Code
- LeetCode | Gray Code(格雷码)
- LeetCode(87) Gray Code
- Gray Code(Leetcode 89)
- 89. Gray Code 题解
- 题解:Gray Code
- Gray Code (格雷码编码) 【leetcode】
- LeetCode OJ 之 Gray Code(格雷码)
- [C++]LeetCode: 86 Gray Code (格雷码)
- LeetCode 89. Gray Code(生成格雷码)
- LeetCode 89. Gray Code(格雷码)
- LeetCode 89(Gray Code)java
- LeetCode#89. Gray Code(格雷码)
- LeetCode刷题(47)--Gray Code
- LeetCode: Gray Code
- [LeetCode] 格雷码(Gray Code)
- 中国高校与研究院所计算机学科分专业点评(本贴内容仅供参考!)
- 安装 Intel RST (Intel Rapid Storage Technology) 磁盘阵列驱动时,提示 “此产品有一个挂起的重新启动” 的解决方法
- 快速实现RecycleView的网格和瀑布流布局添加头部(尾部原理一样,故略之)
- java中static关键字的用法详解
- Java中this关键字用法详解
- LeetCode 题解(158): Gray Code
- Redis演示及使用场景
- Tracking metrics for both multiple targets and single target
- 客户信息一览
- NServiceBus
- Ubuntu启动盘制作(U盘)
- .NET 环境中使用RabbitMQ
- NET下RabbitMQ实践[配置篇]
- NET下RabbitMQ实践[示例篇]