题意:求n位格雷码表示的十进制数。
题解:递归,这里用bitset方便储存。
class Solution {
void utils(bitset<32>& bits, vector<int>& result, int k){
if(k==0){
result.push_back(bits.to_ulong());
}
else{
utils(bits, result, k-1);
bits.flip(k-1);
utils(bits, result, k-1);
}
}
public:
vector<int> grayCode(int n) {
bitset<32> bits;
vector<int> result;
utils(bits, result, n);
return result;
}
};