Java教程

898989

本文主要是介绍898989,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

89

class Solution {
    public List<Integer> grayCode(int n) {
        List<Integer> res = new ArrayList<>();
        dfs(n, res, 0, 0, 0);
        return res;
    }

    public void dfs(int n, List<Integer> res, int start, int sum, int id){
        if(start == n){
            res.add(sum);
            return;
        }
        if(id%2 == 0){
            dfs(n, res, start + 1, (sum<<1) , id);
            dfs(n, res, start + 1, (sum<<1) + 1 , id + 1);
        } else {
            dfs(n, res, start + 1, (sum<<1) + 1 , id + 1);
            dfs(n, res, start + 1, (sum<<1) , id);
        }
    }
}
这篇关于898989的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!