leetcode-89-格雷编码

链接-解题思路6
链接-解题思路15

解题思路-6
class Solution {
public:
    vector grayCode(int n) {
        vector targetArray;
        for (int i = 0; i < 1<>1));
        }
        return targetArray;
    }
};


解题思路-15
class Solution {
public:
    vector grayCode(int n) {
        int shift = 1;
        vector 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>1)^i;
    }
    return a;    
}

你可能感兴趣的:(数据结构与算法,leetcode,算法,职场和发展)