leetcode第一刷_Gray Code
来源:互联网 发布:数据化武道 编辑:程序博客网 时间:2024/06/06 00:18
说到格雷码,应该没人不知道,具体它有什么用,我还真不是很清楚,我室友应该是专家。生成的规律不是很明显,之前看到帖子讲的,这会儿找找不到了。。
思想是这样的,如果有n位,在第2^(n-1)个编码下面画一条水平线的话,你会发现除了第一位之外,其他位都是关于这条线对称的,如下,以三位格雷码举例:
000
001
011
010
---------------------
110
111
101
100
很神奇吧,我以前是不知道这个规律的。从一开始的一位格雷码,0,1,开始,每次对称的在上一个前面添加上0和1,就得到了下一个长度的所有格雷码。
我呢这道题没有这么写,偷了个懒,因为还有一种更加简洁的方法,具体原理我还没有参透,应该是格雷码定义用的方法?代码贴在下面:
class Solution {public: vector<int> grayCode(int n) { vector<int> res; if(n == 0){ res.push_back(0); }else{ for(int i=0;i<pow(2, n);i++) res.push_back((i>>1)^i); } return res; }};
0 0
- leetcode第一刷_Gray Code
- leetcode第一刷_Candy
- leetcode第一刷_Triangle
- leetcode第一刷_Combinations
- leetcode第一刷_Anagrams
- leetcode第一刷_Permutations
- leetcode第一刷_Triangle
- leetcode第一刷_3Sum
- leetcode第一刷_4Sum
- leetcode第一刷_Sort List
- leetcode第一刷_LRU Cache
- leetcode第一刷_Two sum
- leetcode第一刷_ZigZag Conversion
- leetcode第一刷_Reverse Integer
- leetcode第一刷_Palindrome Number
- leetcode第一刷_Submission Details
- leetcode第一刷_Word Break
- leetcode第一刷_Gas Station
- ellipsize设置属性无效
- 算法导论之动态规划:矩阵链相乘
- [置顶] android应用开发之intent的妙用一
- iOS 分享一些免费接口
- 数据科学之机器学习12: Logisic回归
- leetcode第一刷_Gray Code
- textView/textField.text.length的问题
- 堆和栈的区别(经典)
- 使用Android Studio 0.5.7
- 2013年计算机求职总结
- Genymotion 模拟器安装谷歌服务Google Apps (Google Play 市场) 和ARM库的方法教程
- GCDAsyncSocket类库,IOS下TCP通讯使用心得
- 算法 - 求两个自然数的最大公约数(C++)
- 数据科学之机器学习13: 关联分析