lintcode-medium-Gray Code
2016-03-22 12:02
211 查看
The gray code is a binary numeral system where two successive values differ in only one bit.
Given a non-negative integer
Given
[/code]
Given a non-negative integer
nrepresenting the total number of bits in the code, find the sequence of gray code. A gray code sequence must begin with
0and with cover all 2n integers.
Given
n = 2, return
[0,1,3,2]. Its gray code sequence is:
00 - 0 01 - 1 11 - 3 10 - 2
[/code]
public class Solution { /** * @param n a number * @return Gray code */ public ArrayList<Integer> grayCode(int n) { // Write your code here ArrayList<Integer> result = new ArrayList<Integer>(); if(n < 0) return result; if(n == 0){ result.add(0); return result; } result.add(0); result.add(1); for(int i = 2; i <= n; i++){ ArrayList<Integer> new_half = new ArrayList<Integer>(); for(int j = result.size() - 1; j >= 0; j--) new_half.add(result.get(j) + (1 << (i - 1))); result.addAll(new_half); } return result; } }
相关文章推荐
- 新手做LeetCode 2 Add Two Numbers
- keepalived入门之lvs高可用部署 (应用篇)
- Git权威指南第一章 版本控制的前世今生(一)
- 兼容性记录-class属性
- 2016-03-22 OneZero团队 Daily Scrum Meeting
- 【图解ASP.NET MVC运行机制理解-简易版】
- 文本视图 UITextView
- 让服务程序进入demon模式的代码
- 什么是swing/SWT与/JFace/RCP/插件开发
- Create groups和Create folder references的区别
- MySQL复制之GTID跳过与FEDERATED存储引擎(接上篇)
- Spring MVC的HTTP请求信息转换器HttpMessageConverter
- Node.js小Httpserver
- jta+spring4+hibernate5/jpa2
- 单元测试
- Android开发案例 – 在AbsListView中使用倒计时
- 关于free如何知道要释放内存空间的长度问题
- 后缀自动机小练总结(Spoj1811&&Hdu4416&&CodeForces235C)
- mysql字段类型详解
- Android 获取字符串高度与宽度