Gray Code

来源:互联网 发布:物流网络形式 编辑:程序博客网 时间:2024/05/22 00:41

这个思路简直太好了!

n = k 时的格雷码,就是 n = k - 1 时的格雷码的逆序,再加上 1 << k ,如此,便可以得到下面的算法。

class Solution {public:    vector<int> grayCode(int n) {        vector<int> res;        res.push_back(0);        for (int i = 0; i < n; ++i) {            int highBit = 1 << i;            for (int j = res.size() - 1; j >= 0; --j) {                res.push_back(highBit + res[j]);            }        }        return res;    }};

http://oj.leetcode.com/problems/gray-code/

0 0