自学内容网 自学内容网

穷举vs暴搜vs深搜vs回溯vs剪枝系列一>优美的排列

题目:

 


解析: 

部分决策树: 

 


代码设计:

 


代码: 

private int count;
    private boolean[] check;
    public int countArrangement(int n) {
        check = new boolean[n+1];
        dfs(n,1);
        return count;
    } 

    private void dfs(int n, int pos){
        if(pos == n+1){
            count++;
            return;
        }

        for(int i = 1; i <= n; i++){
            if(check[i] == false && (i % pos == 0 || pos % i == 0)){
                check[i] = true;
                dfs(n,pos+1);
                check[i] = false;//恢复现场
            }
        }
    }

原文地址:https://blog.csdn.net/robin_suli/article/details/145142579

免责声明:本站文章内容转载自网络资源,如本站内容侵犯了原著者的合法权益,可联系本站删除。更多内容请关注自学内容网(zxcms.com)!