LeetCode 89. Gray Code(生成格雷码)
来源:互联网 发布:用java开发apk的步骤 编辑:程序博客网 时间:2024/05/24 04:45
public class Solution { public List<Integer> grayCode(int n) { int all = 1<<n; List<Integer> result = new ArrayList<Integer>(all);//预分配空间 result.add(0); if(n==0)return result; result.add(1); if(n==1)return result ; int count = 2; int index = 1; int base = 2; while(count<all){ if(index<0){ index = count-1; base = base << 1; } result.add(base+result.get(index)); count++; index--; } return result; }}
基本思路很简单:
假设有格雷码:a[0]=0,a[1]=1;接下来就是
a[2]=1a[1];a[3]=1a[0];(字符串拼接,不是乘法)
即把下一个最高位置为1,将目前有的格雷码倒序输出,加上最高位的1
这样使用O(n)的时间就能生成所有格雷码
0 0
- LeetCode 89. Gray Code(生成格雷码)
- LeetCode 89. Gray Code(格雷码)
- LeetCode#89. Gray Code(格雷码)
- 生成格雷码(Gray Code)
- LeetCode | Gray Code(格雷码)
- [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
- 简单的http过滤模块
- Android 高清加载巨图方案 拒绝压缩图片
- 实战Nginx与PHP(FastCGI)的安装、配置与优化
- java基础知识(标识符,命名规则,注释)
- Java四种生成xml文件的方法
- LeetCode 89. Gray Code(生成格雷码)
- 得到格式化的时间
- Android Studio NDk调试(基于gradle-experimental插件与LLDB)
- Codeforces 667D World Tour (最短路+枚举)
- 【周总结】——收拾行囊
- 【LeetCode】Power of Two 解题报告
- Marklogic学习 由浅入深(7)—— Marklogic应用开发指引
- android 5.x—Tinting着色和Clipping裁剪
- linux shell命令行选项与参数用法详解