力扣动态规划-30【算法学习day.124】

前言

###我做这类文章一个重要的目的还是记录自己的学习过程,我的解析也不会做的非常详细,只会提供思路和一些关键点,力扣上的大佬们的题解质量是非常非常高滴!!!


习题

1.零钱兑换

题目链接: 322. 零钱兑换 - 力扣(LeetCode)

题面:

代码:

java 复制代码
class Solution {
    private int[] coins;
    private int[][] memo;

    public int coinChange(int[] coins, int amount) {
        this.coins = coins;
        int n = coins.length;
        memo = new int[n][amount + 1];
        for (int[] row : memo) {
            Arrays.fill(row, -1);
        }
        int ans = dfs(n - 1, amount);
        return ans < Integer.MAX_VALUE / 2 ? ans : -1;
    }

    private int dfs(int i, int c) {
        if (i < 0) {
            return c == 0 ? 0 : Integer.MAX_VALUE / 2;
        }
        if (memo[i][c] != -1) { 
            return memo[i][c];
        }
        if (c < coins[i]) {
            return memo[i][c] = dfs(i - 1, c);
        }
        return memo[i][c] = Math.min(dfs(i - 1, c), dfs(i, c - coins[i])+1);
    }
}

后言

上面是动态规划相关的习题,共勉

相关推荐
天天摸鱼的java工程师22 分钟前
秒杀系统中:如何防止超卖和库存超扣?
java·后端
弥彦_26 分钟前
贪心算法经典问题
c++·算法
CodeCipher29 分钟前
Java基础复习之继承
java·开发语言
BillKu37 分钟前
Java延时
java·开发语言
lboverfys39 分钟前
贪心算法之分发饼干(一)
算法·贪心算法
啾啾Fun1 小时前
Java面试题:分布式ID时钟回拨怎么处理?序列号耗尽了怎么办?
java·分布式·分布式id·八股
这张生成的图像能检测吗1 小时前
生成对抗网络(GANs)入门介绍指南:让AI学会“创造“的魔法(二)【深入版】
人工智能·pytorch·深度学习·神经网络·算法·生成对抗网络·计算机视觉
jarenyVO1 小时前
RabbitMQ全面学习指南
数据库·学习·rabbitmq
qq_534452521 小时前
【算法 day02】LeetCode 209.长度最小的子数组 | 59.螺旋矩阵II
java·算法·leetcode·职场和发展
大磕学家ZYX1 小时前
JavaScript学习笔记
javascript·笔记·学习