[LeetCode-Algorithms-89] "Gray Code" (2017.12.26-WEEK17)

来源:互联网 发布:java递归删除树节点 编辑:程序博客网 时间:2024/06/07 20:25

题目链接:Gray Code


  • 题目描述:

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.


(1)思路:格雷码有一个小规律就是n位格雷码后分别再加0/1就有了n+1位格雷码。本来我想的是给后面加位数,但是发现实现起来不如直接往前加1方便。

举个例子,2位格雷码:

00011110

要变成3位格雷码,给最高位之前加1就好了,但是必须从后往前循环。

000001011010110111101100

(2)代码:

class Solution {public:    vector<int> grayCode(int n) {        vector<int> ans(1, 0);        for(int i = 0; i < n; i++) {            int size = ans.size();            while(size--) {                int ans_temp = ans[size];                ans_temp += (1 << i);                ans.push_back(ans_temp);            }        }        return ans;    }};

(3)提交结果:

这里写图片描述

阅读全文
'); })();
0 0
原创粉丝点击
热门IT博客
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 买床笠 双人床床笠 床裙 床笠 什么样的床笠好 床裙和床笠的区别 加棉床笠 床笠款好还是床单款好 罗莱家纺床笠 床裙床笠 床笠款是什么 床裙 床笠 床单 床垫罩 席梦思套 床罩床单铺法图片 床单可以改成床笠吗 床罩制作 床罩怎么做 床罩尺寸 防尘床罩 床罩怎么铺 床罩怎么叠 医用床罩 床单 床罩 美式床罩 床罩的尺寸 棉床罩 床罩的颜色 一次性床罩 一米八床罩图片及价格 蕾丝床裙床罩 床罩哪个牌子好 好看床罩款式图 按摩床套床罩床裙 美容床罩图片及价格 美容床罩价格 美容床床罩图片及价格 窗帘杆价格 丝绸被套 床虫 床虫图片 床虫叮咬后伤口图片