leetcode:518. 零钱兑换 II[完全背包]

学习要点

  1. 理解完全背包思想
  2. 理解一维数组的解法

题目链接

518. 零钱兑换 II - 力扣(LeetCode)

题目描述

解法:二维数组

cpp 复制代码
class Solution {
public:
    int change(int amount, vector<int>& coins) {
        if (amount == 0)
            return 1;
        // dp[i][j]  0-i中任意无限取凑成j的最大方式
        int n = coins.size();
        vector<vector<uint64_t >> dp(n, vector<uint64_t>(amount + 1, 0));
        // 初始化
        for (int i = 1; i <= amount; i++) {
            if (i % coins[0] == 0) {
                dp[0][i] = 1;
            }
        }
        for (int i = 0; i < n; i++) {

            dp[i][0] = 1;
        }

        // 开始动归
        for (int i = 1; i < n; i++) {
            for (int j = 1; j <= amount; j++) {
                if (coins[i] > j) {
                    dp[i][j] = dp[i - 1][j];
                } else {
                    dp[i][j] = dp[i - 1][j] + dp[i][j - coins[i]];
                }
            }
        }
        return dp[n - 1][amount];
    }
};

解法:一维数组

cpp 复制代码
class Solution {
public:
    int change(int amount, vector<int>& coins) {
        // 完全背包组合问题
        if(amount == 0) return 1;
        int n = coins.size();
        vector<uint64_t> dp(amount+1,0);
        // dp[j] = dp[j]上一层 + dp[j-coins[i]]这一层 
        dp[0] = 1;
        for(int i = 0;i<n;i++)
        {
            for(int j = coins[i];j<=amount;j++)
            {
               dp[j] += dp[j-coins[i]]; 
            }
        }
        return dp[amount];
    }
};
相关推荐
tao3556673 小时前
【Python刷力扣hot100】42. Trapping Rain Water
开发语言·python·leetcode
Miraitowa_cheems3 小时前
LeetCode算法日记 - Day 88: 环绕字符串中唯一的子字符串
java·数据结构·算法·leetcode·深度优先·动态规划
B站_计算机毕业设计之家4 小时前
python电商商品评论数据分析可视化系统 爬虫 数据采集 Flask框架 NLP情感分析 LDA主题分析 Bayes评论分类(源码) ✅
大数据·hadoop·爬虫·python·算法·数据分析·1024程序员节
小白菜又菜4 小时前
Leetcode 1518. Water Bottles
算法·leetcode·职场和发展
长存祈月心4 小时前
Rust Option 与 Result深度解析
算法
杭州杭州杭州5 小时前
机器学习(3)---线性算法,决策树,神经网络,支持向量机
算法·决策树·机器学习
不语n6 小时前
快速排序(Quick Sort)详解与图解
数据结构·算法·排序算法·快速排序·双指针排序
电鱼智能的电小鱼7 小时前
基于电鱼 ARM 工控机的AI视频智能分析方案:让传统监控变得更聪明
网络·arm开发·人工智能·嵌入式硬件·算法·音视频
初学者,亦行者7 小时前
Rust性能优化:内存对齐与缓存友好实战
算法·rust