Leetcode-89.格雷编码

题目链接:https://leetcode-cn.com/problems/gray-code/

解法1:镜像反射

思路:分析题目

每次都根据$2^{n-1}$进行翻转,且在最高位补1.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
class Solution {
public:
vector<int> grayCode(int n) {
int len=pow(2,n);
vector<int> res(len,0);
int i,j;
int temp;
for(i=1;i<=n;i++)
{
for(j=0;j<pow(2,i-1);j++)
{
temp=res[j]+pow(2,i-1);
res[pow(2,i)-j-1]=temp;
}
}
return res;
}
};