关注
最后没有时间了,也不知道这个能不能过................
用的是把所有的钱放到一个数组里,然后dfs加回溯,一旦发现满足条件的,就把组合的size保存起来。
import java.util.ArrayList;
import java.util.HashSet;
import java.util.Scanner;
import java.util.Set;
public class Main {
static int[] coins = {1, 5, 10, 20, 50, 100};
private static String process(String num1, String num2){
String[] arr = num1.split(" ");
int[] nums = new int[arr.length];
for(int i=0;i<coins.length;i++) {
nums[i] = Integer.parseInt(arr[i]);
}
int target = Integer.parseInt(num2);
ArrayList<Integer> tmp = new ArrayList<>();
for(int j=0;j<nums.length;j++) {
for(int k=0;k<nums[j];k++)
tmp.add(coins[j]);
}
ArrayList<Integer> res = new ArrayList<>();
ArrayList<Integer> path = new ArrayList<>();
hepler(res, tmp, target, 0, 0, path);
int num = 0;
for(int val:res) {
num += val;
}
return num+"";
}
private static void hepler(ArrayList<Integer> res, ArrayList<Integer> coins, int target, int pos, int sum, ArrayList<Integer> path) {
if(sum == target) {
res.add(path.size());
return;
}
if(sum > target)
return;
Set<Integer> set = new HashSet<>();
for(int i=pos;i<coins.size();i++) {
if(set.contains(coins.get(i)))
continue;
set.add(coins.get(i));
path.add(coins.get(i));
hepler(res, coins, target, i+1, sum+coins.get(i), path);
path.remove(path.size()-1);
}
}
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
String strValueSequences = sc.nextLine();
String strChargeNum = sc.nextLine();
String sum = process(strValueSequences, strChargeNum);
System.out.println(sum);
}
}
查看原帖
点赞 1
相关推荐
点赞 评论 收藏
分享
牛客热帖
更多
- 1... 分享一下年底被广州某游戏公司裁员的经历2.3W
- 2... 挚文集团-陌陌笔试202506062.0W
- 3... 研一快手后端开发,一周速通,附一二面面经1.6W
- 4... 被BOSS直聘某公司老板骂!惊现素质天花板!1.2W
- 5... 牛友们是选爱情还是选前途?9373
- 6... 在携程实习后,我的想法更加坚定了9167
- 7... 金山办公测试春招一面_珠海8870
- 8... 26学院本游戏客户端鼠鼠求职碎碎念+总结8288
- 9... 乡下人第一次到上海租房,隔壁sexy声音搞的我火气很大7254
- 10... 不是,你一个应届毕业生用什么BOSS啊!6368
正在热议
更多
# 我的实习收获 #
32239次浏览 504人参与
# 第一份工作应该选高薪还是热爱? #
61643次浏览 561人参与
# 实习吐槽大会 #
34759次浏览 162人参与
# 2025牛客秋招季 #
5197次浏览 160人参与
# 晒一晒你的工位 #
86360次浏览 307人参与
# 我的租房踩坑经历 #
30386次浏览 308人参与
# 移动求职进展汇总 #
1593次浏览 17人参与
# 穿越回高考你还会选现在的专业吗 #
22865次浏览 270人参与
# 26届秋招投递记录 #
4293次浏览 115人参与
# 求职遇到的搞笑事件 #
113201次浏览 769人参与
# 招银网络求职进展汇总 #
113262次浏览 741人参与
# 地方国企笔面经互助 #
29963次浏览 98人参与
# 双非能在秋招上岸吗? #
215323次浏览 1144人参与
# 毕业旅行去哪玩儿 #
1330次浏览 33人参与
# 如果有时光机,你最想去到哪个年纪? #
47246次浏览 800人参与
# 非技术岗简历怎么写 #
209881次浏览 2861人参与
# 打工人锐评公司红黑榜 #
146200次浏览 920人参与
# 找工作有哪些冷知识 #
97960次浏览 1382人参与
# 携程求职进展汇总 #
533551次浏览 3992人参与
# 牛友们,签完三方你在忙什么? #
95112次浏览 839人参与