博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
gray-code——找规律
阅读量:6296 次
发布时间:2019-06-22

本文共 1163 字,大约阅读时间需要 3 分钟。

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.

 

n=0    0

n=1    0    0+1<<(1-1)

n=2    n=1: 0  1   1+1<<(2-1)   0+1<<(2-1)

 

找到规律,第n次增加的序列为n-1序列的倒序+(高位+1)形成。

1 class Solution { 2 public: 3     vector
grayCode(int n) { 4 vector
res; 5 if(n<0) return res; 6 res.push_back(0); 7 for(int i=1;i<=n;i++){ 8 int size=res.size(); 9 for(int j=size-1;j>=0;j--){10 int tmp=1<<(i-1);11 tmp|=res[j];12 res.push_back(tmp);13 }14 }15 16 return res;17 }18 };

 

转载地址:http://welta.baihongyu.com/

你可能感兴趣的文章
Storm中的Worker
查看>>
dangdang.ddframe.job中页面修改表达式后进行检查
查看>>
Web基础架构:负载均衡和LVS
查看>>
Linux下c/c++相对路径动态库的生成与使用
查看>>
SHELL实现跳板机,只允许用户执行少量允许的命令
查看>>
SpringBoot 整合Redis
查看>>
2014上半年大片早知道
查看>>
Android 6.0指纹识别App开发案例
查看>>
正文提取算法
查看>>
轻松学PHP
查看>>
Linux中的网络监控命令
查看>>
this的用法
查看>>
windows下安装redis
查看>>
CentOS7 yum 安装git
查看>>
启动日志中频繁出现以下信息
查看>>
httpd – 对Apache的DFOREGROUND感到困惑
查看>>
分布式锁的一点理解
查看>>
idea的maven项目,install下载重复下载本地库中已有的jar包,而且下载后jar包都是lastupdated问题...
查看>>
2019测试指南-web应用程序安全测试(二)指纹Web服务器
查看>>
树莓派3链接wifi
查看>>