Day48.算法训练

322. 零钱兑换

java 复制代码
class Solution {
    public int coinChange(int[] coins, int amount) {
        int[] dp = new int[amount + 1];

        Arrays.fill(dp, amount + 1);
        dp[0] = 0;

        for (int coin : coins) {
            for (int j = coin; j < amount + 1; j++) {
                dp[j] = Integer.min(dp[j], dp[j - coin] + 1);
            }
        }
        return dp[amount] <= amount ? dp[amount] : -1;
    }
}

279. 完全平方数

java 复制代码
class Solution {
    public int numSquares(int n) {
        int[] dp = new int[n + 1];
        Arrays.fill(dp, n);
        dp[0] = 0;

        for (int i = 1; i * i < n + 1; i++) { // 物品

            for (int j = i * i; j < n + 1; j++) { //背包
                dp[j] = Integer.min(dp[j], dp[j - i * i] + 1);
            }
        }
        return dp[n];
    }
}
相关推荐
2501_9412362110 小时前
C++与Node.js集成
开发语言·c++·算法
云边有个稻草人13 小时前
部分移动(Partial Move)的使用场景:Rust 所有权拆分的精细化实践
开发语言·算法·rust
松涛和鸣14 小时前
11.C 语言学习:递归、宏定义、预处理、汉诺塔、Fibonacci 等
linux·c语言·开发语言·学习·算法·排序算法
2501_9411112416 小时前
C++与自动驾驶系统
开发语言·c++·算法
2501_9411116916 小时前
C++中的枚举类高级用法
开发语言·c++·算法
jz_ddk16 小时前
[算法] 算法PK:LMS与RLS的对比研究
人工智能·神经网络·算法·信号处理·lms·rls·自适应滤波
Miraitowa_cheems16 小时前
LeetCode算法日记 - Day 106: 两个字符串的最小ASCII删除和
java·数据结构·算法·leetcode·深度优先
旭编16 小时前
小红的好矩形
c++·算法
小白程序员成长日记16 小时前
2025.11.12 力扣每日一题
算法·leetcode·职场和发展
Alex艾力的IT数字空间16 小时前
设计既保持高性能又兼顾可移植性的跨平台数据结构
数据结构·分布式·算法·微服务·中间件·架构·动态规划