博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Gray Code
阅读量:6479 次
发布时间:2019-06-23

本文共 1197 字,大约阅读时间需要 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 的格雷码是n ^ (n/2)。

class Solution {public:    vector
grayCode(int n) { vector
rst; size_t size = 1 << n;//2^n rst.reserve(size); for (size_t i = 0; i < size; i++) rst.push_back(i ^ (i >> 1)); return rst; }};

vector的reserve()与resize()函数差别:

  • vector 的reserve增加了vector的capacity,可是它的size没有改变!

    而resize改变了vector的capacity同一时候也增加了它的size!

  • reserve是容器预留空间。但在空间内不真正创建元素对象,所以在没有增加新的对象之前,不能引用容器内的元素。增加新的元素时,要调用push_back()/insert()函数。
  • resize是改变容器的大小,且在创建对象,因此,调用这个函数之后。就能够引用容器内的对象了,因此当增加新的元素时,用operator[]操作符,或者用迭代器来引用元素对象。此时再调用push_back()函数。是加在这个新的空间后面的。

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

你可能感兴趣的文章
Hessian 原理分析--转
查看>>
转: 基于netty+ protobuf +spring + hibernate + jgroups开发的游戏服务端
查看>>
easyui传入map的数据前台展示出tree格式数据
查看>>
悲观的思考,乐观的生活.我们既需要思考的深度,也需要生活的温度!
查看>>
java.math.BigDecimal
查看>>
Vitamio中文API文档(4)—— VitamioInstaller
查看>>
yii框架常用url地址
查看>>
python3.4学习笔记(十六) windows下面安装easy_install和pip教程
查看>>
MyGUI 解析
查看>>
Linux中的ls命令详细使用
查看>>
graph-tool文档(一)- 快速开始使用Graph-tool - 2.属性映射、图的IO和Price网络
查看>>
easyui treegrid逐步加载
查看>>
GraphicsLab Project之辉光(Glare,Glow)效果 【转】
查看>>
<转>Python: __init__.py 用法
查看>>
Linux Curl命令
查看>>
046 SparlSQL中的函数
查看>>
-27979 LoadRunner 错误27979 找不到请求表单 Action.c(73): Error -27979: Requested form not found...
查看>>
[LeetCode] Minimum Depth of Binary Tree
查看>>
,net运行框架
查看>>
Java 中 Emoji 的正则表达式
查看>>