题目链接
https://leetcode.com/problems/gray-code/
思路
假设n-1已经求好了,要得到n,只需要对n-1的所有数从最后一个数往前都加上2的n-1次方放到答案列表里即可。
代码
class Solution {
public:
vector<int> grayCode(int n) {
vector<int> ans;
ans.push_back(0);
int it = 1, len;
while (n--) {
for (int i = ans.size() - 1; i >= 0; --i) {
ans.push_back(it + ans[i]);
}
it <<= 1;
}
return ans;
}
};
网友评论