解题思路-6
class Solution {
public:
vector<int> grayCode(int n) {
vector<int> targetArray;
for (int i = 0; i < 1<<n ; ++i) {
targetArray.push_back(i^(i>>1));
}
return targetArray;
}
};
解题思路-15
class Solution {
public:
vector<int> grayCode(int n) {
int shift = 1;
vector<int> res;
while(n >= 0){
if(res.size() == 0){
res.push_back(0);
}else{
for(int i = shift-1; i >= 0; --i){
res.push_back(res[i] + shift);
}
shift *= 2;
}
--n;
}
return res;
}
};
C语言实现
int* grayCode(int n, int* returnSize){
int total=pow(2.0,n);
int *a=(int*)malloc(sizeof(int)*total);
*returnSize=total; // 这步在leetcode中为什么是必须的?
for(int i=0;i<total;i++)
{
a[i]=(i>>1)^i;
}
return a;
}
leetcode-89-格雷编码
猜你喜欢
转载自blog.csdn.net/Edidaughter/article/details/121055025
今日推荐
周排行