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

后言

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

相关推荐
毕设源码-赖学姐9 小时前
【开题答辩全过程】以 花卉交易系统为例,包含答辩的问题和答案
java
We་ct9 小时前
LeetCode 212. 单词搜索 II:Trie+DFS 高效解法
开发语言·算法·leetcode·typescript·深度优先·图搜索算法·图搜索
样例过了就是过了9 小时前
LeetCode热题100 路径总和 III
数据结构·c++·算法·leetcode·链表
arvin_xiaoting9 小时前
从 0 到 1:搭建自学习 AI Agent 系统的完整工程指南
人工智能·学习·系统设计·ai agent·lancedb·自学习·openclaw
lxh01139 小时前
函数防抖题解
前端·javascript·算法
再难也得平10 小时前
力扣41. 缺失的第一个正数(Java解法)
数据结构·算法·leetcode
颜酱10 小时前
环检测与拓扑排序:BFS/DFS双实现
javascript·后端·算法
weixin_7042660510 小时前
Spring整合MyBatis(一)
java·spring·mybatis
翘着二郎腿的程序猿10 小时前
Maven本地化部署与使用全指南
java·maven
历程里程碑10 小时前
Linux 49 HTTP请求与响应实战解析 带http模拟实现源码--万字长文解析
java·开发语言·网络·c++·网络协议·http·排序算法