89. Gray Code
典型回朔题。
class Solution { public: bool func(int k,vector<int>& visit,vector<int>& result,int n) { if(result.size()==visit.size()) return true; else { for(int i=0;i<n;i++) { int temp=k^(1<<i); if(visit[temp]==0) { visit[temp]=1; result.push_back(temp); if(func(temp,visit,result,n)) return true; visit[temp]=0; result.pop_back(); } } return false; } } vector<int> grayCode(int n) { vector<int> result; vector<int> visit(pow(2,n),0); visit[0]=1; result.push_back(0); func(0,visit,result,n); return result; } };