89. Gray Code

来源:互联网 发布:华语乐坛现状知乎 编辑:程序博客网 时间:2024/06/05 08:38

典型回朔题。

class Solution {public:    bool func(int k,vector<int>& visit,vector<int>& result,int n)    {        if(result.size()==visit.size())            return true;        else        {            for(int i=0;i<n;i++)            {                int temp=k^(1<<i);                if(visit[temp]==0)                {                    visit[temp]=1;                    result.push_back(temp);                    if(func(temp,visit,result,n))                        return true;                    visit[temp]=0;                    result.pop_back();                }            }            return false;        }    }    vector<int> grayCode(int n) {        vector<int> result;        vector<int> visit(pow(2,n),0);        visit[0]=1;        result.push_back(0);        func(0,visit,result,n);        return result;    }};
0 0
原创粉丝点击