Gray Code
来源:互联网 发布:淘宝上下架规则 编辑:程序博客网 时间:2024/05/22 10:58
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.
解法一:观察格雷码规律得到的挫挫的算法.class Solution {public: vector<int> grayCode(int n) { // Start typing your C/C++ solution below // DO NOT write int main() function vector<int> ret(1,0); if(n == 0) return ret; for(int i = 0; i < n;i++) { int size = ret.size(); for(int j = size-1; j>=0;j--) { ret.push_back(pow(2,i) + ret[j]); } } return ret; }};
32 milli secs.
解法二:事实上,格雷码有生成公式,按照公式来写是很简单的。
(G:格雷码,B:二进制码)class Solution {public: vector<int> grayCode(int n) { // Start typing your C/C++ solution below // DO NOT write int main() function vector<int> ret; int size = 1 << n; for(int i = 0; i < size;i++) { ret.push_back(i^(i>>1)); } return ret; }};28 milli secs.
- Gray Code
- Gray Code
- gray code
- Gray Code
- Gray Code
- Gray Code
- Gray Code
- Gray Code
- Gray Code
- Gray Code
- Gray Code
- Gray Code
- Gray Code
- Gray Code
- Gray Code
- Gray Code
- Gray Code
- Gray Code
- 查找峰值点,求相关
- hdu 4578——Transformation
- (Ext基础篇) 表单与输入控件
- Quick Change hdu
- 在Xlib中,从XImage中取出R,G,B三分量
- Gray Code
- EF更新数据库报错:初始化数据库时发生异常。有关详细信息
- 【热门主题】紫色梦幻天使win7主题
- 【xinfanqie】电脑必须避免的11个注意事项
- dom4j解析和修改xml
- 数论题大集合
- maven安装jar到本地库要注意的问题
- 如何区分动态语言和静态语言
- 去北京看奥运