思路:查看下n=3,n=4时候的结果,发现规律可用递归方式做。
class Solution {
public:vector<int> grayCode(int n) {
vector<int> result;
if(n <= 0) {
result.push_back(0);
return result;
}
vector<int> result1 = grayCode(n-1);
int end = result1.size() - 1;
int temp = 0;
for(int i=0;i<=end;i++){
result.push_back((result1[i] << 1) | temp);
result.push_back((result1[i] << 1) | ( 1 - temp));
temp = 1 - temp;
}
return result;
}
};