格雷码(多种方法含递归)
来源:互联网 发布:java第三方服务器ftp 编辑:程序博客网 时间:2024/03/28 18:22
class GrayCode{public: vector<string> getGray1(int n) { vector<string>v; for(int i=0; i<pow(2,n); i++) { string vi; for(int j=0; j<n; j++) { if(((i^(i>>1))>>j)&1) { vi='1'+vi; } else { vi='0'+vi; } } 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 的递归含下级查询(同一张表)
- 判断一个含多种括号的字符串是否匹配正确 (如(([]))正确,[[(()错误)
- iOS 即时通讯 + 仿微信聊天框架 + 源码
- Linux纲要
- Nginx简介及使用Nginx实现负载均衡的原理
- 在线离线QQ的各种样子
- POJ3356-AGTC(编辑距离)
- 格雷码(多种方法含递归)
- MySQL数据库分区(Database partition)
- org.hibernate.InstantiationException: No default constructor for entity
- 剑指offer_连续子数组的最大和
- 查看多媒体文件速度优化升级
- 我的世界 粘液块科技 配方计算 配方表
- android自定义view之九宫格解锁
- 查询另一张表中某字符出现次数 sql
- C++经典书籍