Gray Code
来源:互联网 发布:西安知行软件公司 编辑:程序博客网 时间:2024/05/17 09:35
leetcode 里面Gray code题的多种解法
#include<iostream>#include<vector>#include<stack>using namespace std;class Solution1{public: vector<int>grayCode(int n) { vector<int>result; vector<int>temp; if(n==0) { result.push_back(0); return result; } if(n==1) { result.push_back(0); result.push_back(1); return result; } else { result=grayCode(n-1); } temp=result; for(vector<int>::reverse_iterator iter=temp.rbegin();iter!=temp.rend();iter++) result.push_back(*iter+pow(2,n-1)); /*reverse(temp.begin(),temp.end()); for(vector<int>::iterator iter=temp.begin();iter<temp.end();iter++) result.push_back(*iter+pow(2,n-1));*/ //temp.erase(temp.begin(),temp.end()); return result; }};class Solution2{public: vector<int> grayCode(int n) { vector<int> result; const size_t size = 1 << n; result.reserve(size); for (size_t i = 0; i < size; ++i) result.push_back(binary_to_gray(i)); return result; } private: static unsigned int binary_to_gray(unsigned int n) { return n ^ (n >> 1); }};class Solution3 {public: vector<int> grayCode(int n) { vector<int> result; result.reserve(1<<n); result.push_back(0); for (int i = 0; i < n; i++) { const int highest_bit = 1 << i; for (int j = result.size() - 1; j >= 0; j--) result.push_back(highest_bit | result[j]); } return result; }};class Solution4{public: vector<int>grayCode(int n) { vector<int>result; int num; result.push_back(0); for(int i=0;i<n;i++) { num=1<<i; for(int j=result.size()-1;j>=0;j--) result.push_back(result[j]+num); } return result; }};void main(){ Solution1 solution; vector<int>array; array=solution.grayCode(5); for(vector<int>::iterator iter=array.begin();iter!=array.end();iter++) cout<<*iter<<' '; cout<<endl; Solution2 solution2; vector<int>result; result=solution2.grayCode(5); for(vector<int>::iterator iter=result.begin();iter!=result.end();iter++) cout<<*iter<<' '; cout<<endl;}
0 0
- Gray Code
- Gray Code
- gray code
- Gray Code
- Gray Code
- Gray Code
- Gray Code
- Gray Code
- Gray Code
- Gray Code
- Gray Code
- Gray Code
- Gray Code
- Gray Code
- Gray Code
- Gray Code
- Gray Code
- Gray Code
- RPG人物设计:技术蓝图101
- Unknown class ViewController in Interface Builder file错误
- Java反射
- Unity自定义菜单栏
- 位图
- Gray Code
- ZOJ 3795 Grouping 强联通缩点+拓扑序+偏序集的最大链的大小
- 【Hadoop】12、运行hadoop的时候报错
- sql的简单的面试题
- 屏蔽系统锁屏的正确方法,亲测有效!
- js获取项目根路径
- Disruptor
- 如何查找TCOD所在程序的用户出口
- redis在linux下安装并测试(在spring下调用)