小米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)的主要内容,如果未能解决你的问题,请参考以下文章