2.递归回溯求子集和数问题

Posted step_step

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了2.递归回溯求子集和数问题相关的知识,希望对你有一定的参考价值。

public class Zi {
    static int[] w = {1,2,2,4,5,6,6};
    static int[] x = new int[w.length];
    static int m = 10;
    static int sum=0;
    public static void main(String[] args) {
        for(int i=0;i<w.length;i++){
            sum+=w[i];
        }
        Sumofsub(0, 0, sum);
    }
    public static void Sumofsub(int s,int k,int r){
        x[k]=1;
        if(s+w[k]==m){
            for(int j=0;j<w.length;j++){
                System.out.print(x[j]+" ");
             }
            System.out.println();
        }else if(s+w[k]+w[k+1]<=m){
            Sumofsub(s+w[k],k+1,r-w[k]);
        }
        if(s+r-w[k]>=m&&s+w[k+1]<=m){
            x[k]=0;
            Sumofsub(s,k+1,r-w[k]);
        }
    }
}

 

以上是关于2.递归回溯求子集和数问题的主要内容,如果未能解决你的问题,请参考以下文章

求子集 递归加回溯

用回溯法解定和子集问题、0/1背包问题和n皇后问题的算法比较

[LeetCode] 78. 子集 ☆☆☆(回溯)

回溯-递归练习题集

递归与回溯11:子集问题,递增子序列

递归与回溯10:子集,有重复元素