Leetcode—322. 零钱兑换【中等】(memset(dp,0x3f, sizeof(dp))

[复制链接]
发表于 2026-1-22 07:51:32 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?立即注册

×
2024逐日刷题(159)

Leetcode—322. 零钱兑换


算法头脑


dp实今世码
  1. class Solution {
  2. public:
  3.     int coinChange(vector<int>& coins, int amount) {
  4.         int m = coins.size();
  5.         int n = amount;
  6.         int dp[m + 1][n + 1];
  7.         memset(dp, 0x3f, sizeof(dp));
  8.         dp[0][0] = 0;
  9.         for(int i = 1; i <= m; i++) {
  10.             for(int j = 0; j <= n; j++) {
  11.                 dp[i][j] = dp[i - 1][j];
  12.                 if(j >= coins[i - 1]) {
  13.                     dp[i][j] = min(dp[i][j], dp[i][j - coins[i - 1]] + 1);
  14.                 }
  15.             }
  16.         }
  17.         return dp[m][n] > n ? -1 : dp[m][n];
  18.     }
  19. };
复制代码
运行效果


2024.10.5重温一遍

C++实今世码
  1. class Solution {
  2. public:
  3.     int coinChange(vector<int>& coins, int amount) {
  4.         int m = coins.size();
  5.         int n = amount;
  6.         vector<vector<int>> dp(m + 1, vector<int>(n + 1, 1e5));
  7.         dp[0][0] = 0;
  8.         for(int i = 1; i <= m; i++) {
  9.             for(int j = 0; j <= n; j++) {
  10.                 dp[i][j] = dp[i - 1][j];
  11.                 if(j >= coins[i - 1]) {
  12.                     dp[i][j] = min(dp[i][j], dp[i][j - coins[i - 1]] + 1);
  13.                 }
  14.             }
  15.         }
  16.         return dp[m][n] > n ? -1: dp[m][n];
  17.     }
  18. };
复制代码
运行效果


之后我会连续更新,假如喜好我的文章,请记得一键三连哦,点赞关注收藏,你的每一个赞每一份关注每一次收藏都将是我进步路上的无穷动力 !!!↖(▔▽▔)↗感谢支持!
回复

使用道具 举报

登录后关闭弹窗

登录参与点评抽奖  加入IT实名职场社区
去登录
快速回复 返回顶部 返回列表