小米OJ-找出可能的合的组合深搜(dfs)

Posted wszhu

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了小米OJ-找出可能的合的组合深搜(dfs)相关的知识,希望对你有一定的参考价值。

技术图片

import java.util.*;

public class Main {
    static int ans;
    static int num[];
    public static void main(String args[]) {
        Scanner scan = new Scanner(System.in);
        String line;
        while (scan.hasNextLine()) {
            ans = 0;
            line = scan.nextLine().trim();

            String [] str = line.split(" ");
            String [] str1 = str[0].split(",");
            num = new int[str1.length];
            int sum = Integer.parseInt(str[1]);
            for(int i=0;i<str1.length;i++) num[i] = Integer.parseInt(str1[i]);

            dfs(sum,num.length-1);
            System.out.println(ans);
        }
    }
    private static void dfs(int target,int cur){
        if(target<0||cur<0) return;

        if(target==0) {
            ans++;
            return;
        }
         ///顺序可以变动
        dfs(target-num[cur],cur-1);///加上当前数字的值,遍历下一个数字
        dfs(target-num[cur],cur);/// 加上当前数字的值,继续遍历该数字
        dfs(target,cur-1);///不加上当前的数字的值,遍历下一个数字

    }
}

  

 

以上是关于小米OJ-找出可能的合的组合深搜(dfs)的主要内容,如果未能解决你的问题,请参考以下文章

小米oj 找出单独出现的数字

小米OJ 2. 找出单独出现的数字

深搜与广搜

小米oj 找出旋转有序数列的中间值

dfs深搜

台州 OJ 1555 Chores 贪心+深搜