力扣动态规划-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);
    }
}

后言

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

相关推荐
echoyu.8 分钟前
消息队列-kafka完结
java·分布式·kafka
七夜zippoe12 分钟前
分布式事务性能优化:从故障现场到方案落地的实战手记(二)
java·分布式·性能优化
栀椩12 分钟前
springboot配置请求日志
java·spring boot·后端
酷讯网络_24087016014 分钟前
多语言共享贩卖机投资理财共享售卖机投资理财系统
学习·开源
番薯大佬27 分钟前
Python学习-day8 元组tuple
java·python·学习
何似在人间57527 分钟前
Go语言快速入门教程(JAVA转go)——1 概述
java·开发语言·golang
wanzhong233336 分钟前
ArcGIS学习-17 实战-密度分析
学习·arcgis
疯子@1231 小时前
nacos1.3.2 ARM 版容器镜像制作
java·linux·docker·容器
hweiyu001 小时前
C++设计模式,高级开发,算法原理实战,系统设计与实战(视频教程)
c++·算法·设计模式
Swift社区1 小时前
如何解决 Spring Bean 循环依赖
java·后端·spring