编程实现格雷码(Gray Code)
来源:互联网 发布:时代网络大厦美食广场 编辑:程序博客网 时间:2024/05/22 02:29
在一组数的编码中,若任意两个相邻的代码只有一位二进制数不同, 则称这种编码为格雷码(Gray Code),请编写一个函数,
使用递归的方法生成N位的格雷码。
给定一个整数n,请返回n位的格雷码,顺序为从0开始。
测试样例:
1
返回:[“0”,”1”]
解题思路:
#include <iostream>#include <vector>#include <string>using namespace std;vector<string> GetGray(int n){ vector<string> vec; while (n--) { vector<string>::iterator p = vec.begin(); if (p == vec.end()) { vec.push_back("0"); vec.push_back("1"); } else { vector<string> temp(vec); for (vector<string>::iterator p = vec.begin(); p != vec.end(); p++) *p = "0" + *p; for (vector<string>::iterator p = temp.end()-1; p != temp.begin(); p--) vec.push_back(("1" + *p)); vec.push_back("1" + *temp.begin()); } } return vec;}int main(){ vector<string> res=GetGray(4); for (vector<string>::iterator p = res.begin(); p != res.end(); p++) cout << *p << endl; return 0;}
阅读全文
0 0
- 编程实现格雷码(Gray Code)
- [leetcode](Gray Code 格雷码 C语言实现)
- 格雷码(Gray code)简单 c 实现
- c++实现gray code(格雷码)
- [leetcode 89] Gray Code---实现格雷码
- Java 递归实现格雷码(Gray Code)
- Gray Code实现
- [LeetCode] 格雷码(Gray Code)
- Gray Code 格雷码 @LeetCode
- Gray Code 格雷码编码
- leetcode Gray Code 格雷码
- Gray Code 格雷码
- 格雷码(gray code)
- LeetCode-Gray Code(格雷码)
- Gray Code 格雷码
- leetcode89-Gray Code(格雷码)
- [lintcode] Gray Code,格雷码
- 格雷码Gray Code
- 设计模式-命令模式
- EXCEL VBA入门引导教程和提取单元格中数字的例子
- 96. Unique Binary Search Trees
- [js]04js设计模式02 原型链模式
- bzoj2588 Spoj 10628. Count on a tree
- 编程实现格雷码(Gray Code)
- spring+hibernate整合
- 虚拟内存不足造成的蓝屏_问题分析及解决
- Java并发编程之NIO简明教程
- jsp生命周期以及基本用法
- linux中mysql和mycat搭建,以及用mycat实现数据库集群
- 关于VS2013无法加载解决方案中项目问题
- Java 中三大构建工具:Ant、Maven和Gradle
- 关于python的基础知识5--时间戳