一道关于格雷码的题目, 给出n, 输出n位的格雷码。 关于格雷码的详细说明和计算方法请右键:Wiki
附上代码:
1 class Solution {
2 public:
3 vector<int> grayCode(int n) {
4 vector<int> ans(1);
5 if (n >= 1) {
6 //ans.push_back(0);
7 ans.push_back(1);
8 }
9 for (int i = 2; i <= n; i++) {
10 for (int j = (1<<(i-1))-1; j >= 0; j--) {
11 ans.push_back(ans[j]+(1<<(i-1)));
12 }
13 }
14
15 return ans;
16 }
17 };