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

后言

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

相关推荐
磊 子1 分钟前
八大排序之冒泡排序+选择排序
数据结构·算法·排序算法
_深海凉_1 分钟前
LeetCode热题100-买卖股票的最佳时机
leetcode
We་ct2 分钟前
LeetCode 50. Pow(x, n):从暴力法到快速幂的优化之路
开发语言·前端·javascript·算法·leetcode·typescript·
徒 花4 分钟前
HCIP学习05 链路聚合(Eth-Trunk)+ VRRP
服务器·网络·学习·hcip
黑金IT7 分钟前
AI Agent “小龙虾终极进化”——自主学习与持久化记忆的架构实现
人工智能·学习·架构
潇洒畅想7 分钟前
1.1 从∑到∫:用循环理解求和与累积
java·数据结构·python·算法
weixin_3957724711 分钟前
计算机网络学习笔记】初始网络之网络发展和OSI七层模型
笔记·学习·计算机网络
南境十里·墨染春水27 分钟前
linux学习进展 进程的内存管理
linux·服务器·学习
维齐洛波奇特利(male)28 分钟前
@Pointcut(“execution(* com.hdzx..*(..))“)切入点与aop 导致无限循环
java·开发语言
色空大师29 分钟前
【日志文件配置详解】
java·logback·log4j2·日志