题解 | #兑换零钱#

兑换零钱

http://www.nowcoder.com/practice/67b93e5d5b85442eb950b89c8b77bc72

完全背包模版题

import java.util.Arrays;
import java.util.Scanner;

public class Main {
    public static void main(String[] args) {
        Scanner reader = new Scanner(System.in);
        int n = reader.nextInt();
        int aim = reader.nextInt();
        int[] arr = new int[n + 1];
        for (int i = 1; i <= n; i++) {
            arr[i] = reader.nextInt();
        }
        int[] dp = new int[aim + 1];
        // 完全背包
        Arrays.fill(dp, Integer.MAX_VALUE - 10001);
        dp[0] = 0;
        for (int i = 1; i <= aim; i++) {
            for (int j = 1; j <= n; j++) {
                if (i >= arr[j]) {
                    dp[i] = Math.min(dp[i - arr[j]] + 1, dp[i]);
                }
            }
        }
        if (dp[aim] == Integer.MAX_VALUE - 10001) 
            System.out.println(-1);
        else 
            System.out.println(dp[aim]);
    }
}
全部评论

相关推荐

07-09 18:28
门头沟学院 Java
写着提前批,结果还要实习4个月以上???
程序员牛肉:这种不用看,直接投了,面试的时候问对应的HR就行。有可能他们是直接复制的暑期实习的模板。
点赞 评论 收藏
分享
Yki_:你要算时间成本呀,研究生两三年,博士三四年,加起来就五六年了,如果你本科去腾讯干五年,多领五年的年薪,加上公司内涨薪,可能到时候十五年总薪资也跟博士差不多
点赞 评论 收藏
分享
评论
2
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务