格雷码(多种方法含递归)
来源:互联网 发布:淘宝网店开店咋么进货 编辑:程序博客网 时间:2024/05/17 04:36
class GrayCode{public: vector<string> getGray1(int n) { vector<string>v; if(n<=0)return v; int num=pow(2,n); for(int i=0; i<num; i++) { string vi; for(int j=0; j<n; j++) { if(((i^(i>>1))>>j)&1) { vi+='1'; } else { vi+='0'; } } reverse(vi.begin(),vi.end()); v.push_back(vi); } return v; } vector<string> getGray2(int n) { vector<string>v(pow(2,n)); if(n==1) { v[0]='0'; v[1]='1'; return v; } vector<string>prev=getGray(n-1); for(int i=0; i<prev.size(); i++) { v[i]='0'+prev[i]; v[prev.size()*2-1-i]='1'+prev[i]; } return v; } vector<string> getGray(int n) { vector<string>v; for(int i=0; i<n; i++) { if(v.size()==0)v.push_back("0"),v.push_back("1"); else { for(int j=v.size()-1; j>=0; j--) { v.push_back('1'+v[j]); v[j]='0'+v[j]; } } } return v; }};
阅读全文
0 0
- 格雷码(多种方法含递归)
- 格雷码(多种方法含递归)
- JavaScript 多种方法输出数组的元素(含递归)
- 格雷码(多种方法)
- 格雷码(多种方法)
- 几种渐变方法对比(含多种颜色水平渐变、中心至四周渐变等)
- 斐波拉契数列=>多种方法的比较(分治、递归、动态规划/递推)
- 非递归方法枚举目录下所有文件(含子目录)
- 递归方法实现多种进制的转换
- 全排列(含递归和非递归的解法)
- 全排列(含递归和非递归的解法)
- 全排列(含递归和非递归的解法)
- 全排列(含递归和非递归的解法)
- 全排列(含递归和非递归的解法)
- 全排列(含递归和非递归的解法)
- 斐波拉契数列的递归、非递归、公式法多种方法实现
- sql 的递归含下级查询(同一张表)
- 判断一个含多种括号的字符串是否匹配正确 (如(([]))正确,[[(()错误)
- express使用中间件【转】
- Eclipse项目中web app libraries和 Referenced Libraries区别
- 剑指offer 面试题37 两个链表的第一个公共结点
- MySQL数据库中字段含逗号的数据,分隔成多条数据
- squid 反向代理 加上 负载均衡 (lvs net)
- 格雷码(多种方法含递归)
- BlockingQueue
- DemoB
- 【算法题】格雷码
- svn 提交失败
- es5.4中配置ik中文分词器
- php命名空间与自动加载
- Android半透明+RGB颜色代码大全
- 《算法图解》读书笔记