zoukankan      html  css  js  c++  java
  • 【小米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);///不加上当前的数字的值,遍历下一个数字
    
        }
    }
    

      

     

    不忘初心,方得始终。只有走过弯路,才更确信当初最想要的是什么。
  • 相关阅读:
    javascript之理解参数按值传递
    javascript之模仿jQuery实现框架雏形
    javascript之正则表达式学习笔记
    python常用算法了解
    爬虫_小结04
    爬虫_小结03
    爬虫_小结02
    爬虫_小结01
    IO 模型
    数据库,前端和框架须知
  • 原文地址:https://www.cnblogs.com/wszhu/p/12810597.html
Copyright © 2011-2022 走看看