LeetCode 63 Gray Code
来源:互联网 发布:mysql 统计字符串长度 编辑:程序博客网 时间:2024/05/02 02:52
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 -> 2Note:
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.
分析:
一开始没有思路,就从最简单的情况考虑:
1位:0,1
2位:00,01,11,10
3位:000,001,011,010,110,111,101,100
规律就是:每多1位,就是在原来基础上加上高位是0,高位是1的两种情况就可以。
这本身跟顺序没有关系,但由于leetcode序列化的限制,所以加高位的时候要在原来结果中从后往前遍历。
public class Solution { public List<Integer> grayCode(int n) { List<Integer> result = new ArrayList<Integer>(); if(n==0){ result.add(0); return result; } List<Integer> tmp = grayCode(n-1); int high = 1 << (n-1); result = new ArrayList<Integer>(tmp); for(int i=tmp.size()-1; i>=0; i--) result.add(high + tmp.get(i)); return result; }}这道题教会我的是,没有思路的就从最简单的情况入手。
- LeetCode 63 Gray Code
- LeetCode: Gray Code
- [LeetCode] 格雷码(Gray Code)
- LeetCode Gray Code
- [Leetcode] Gray Code
- [LeetCode] Gray Code
- leetcode 112: Gray Code
- LeetCode Gray Code
- [leetCode] Gray Code
- [LeetCode]Gray Code
- Leetcode: Gray Code
- [leetcode]Gray Code
- LeetCode-Gray Code
- [leetcode] Gray Code
- LeetCode - Gray Code
- leetcode之Gray code
- LeetCode:Gray Code
- 【转载】【leetcode】Gray Code
- 一个使用sbt编译的JNI C++ 的模板
- PHP对redis常用的操作
- VBA实现Outlook自动发送带附件带签名的工作周报
- Mysql 忘记root密码 修改root密码 解决方法
- Linux中断异步通知笔记
- LeetCode 63 Gray Code
- tomcat访问日志详细配置教程
- mac 安装mysql
- ReportStudio入门教程(九十三) - 查询1引用查询2的方法(允许向量乘积)
- Akka 编程(20):容错处理(一)
- 浮云
- 线程的操作
- 利用属性名称配置,自动转换成java bean对象的set、get方法的方法
- DM642下浮点转定点操作