码迷,mamicode.com
首页 > 移动开发 > 详细

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

时间:2020-04-30 19:18:28      阅读:65      评论:0      收藏:0      [点我收藏+]

标签:数字   util   ima   get   oid   out   一个   str1   str   

技术图片

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)

标签:数字   util   ima   get   oid   out   一个   str1   str   

原文地址:https://www.cnblogs.com/wszhu/p/12810597.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!