力扣 322 零钱兑换

题目描述

给定不同面额的硬币 coins 和一个总金额 amount。编写一个函数来计算可以凑成总金额所需的最少的硬币个数。如果没有任何一种硬币组合能组成总金额,返回 -1

你可以认为每种硬币的数量是无限的。

示例 1:

输入:coins = [1, 2, 5] amount = 11
输出:3 
解释:11 = 5 + 5 + 1

思路:

完全背包找最小值的模板题,先把数组的值初始化无限接近最大值,然后就是状态转移方程取最小值

完整代码

class Solution {
public:
    int coinChange(vector<int>& coins, int amount) {
    int n=coins.size();
    int f[10001];
    memset(f,0x3f,sizeof f);  初始化
    f[0]=0;  0元肯定0种
    for(int i=0;i<n;i++)
    {
        for(int j=coins[i];j<=amount;j++)保证了数组不会越界
        {
            f[j]=min(f[j],f[j-coins[i]]+1);
        }
    }
    return f[amount]==0x3f3f3f3f ? -1:f[amount];三目运算符
    }
};

相关推荐

  1. 322. 零钱兑换

    2024-03-15 12:18:01       33 阅读
  2. 零钱兑换零钱兑换2,动态规划算法

    2024-03-15 12:18:01       18 阅读
  3. 2024.3.24每日一题——零钱兑换

    2024-03-15 12:18:01       17 阅读

最近更新

  1. TCP协议是安全的吗?

    2024-03-15 12:18:01       18 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2024-03-15 12:18:01       19 阅读
  3. 【Python教程】压缩PDF文件大小

    2024-03-15 12:18:01       18 阅读
  4. 通过文章id递归查询所有评论(xml)

    2024-03-15 12:18:01       20 阅读

热门阅读

  1. 简易线程池的实现

    2024-03-15 12:18:01       20 阅读
  2. mac springboot com.spotify Docker 容器化部署

    2024-03-15 12:18:01       22 阅读
  3. 字符串基础

    2024-03-15 12:18:01       18 阅读
  4. Spring MVC相关

    2024-03-15 12:18:01       15 阅读
  5. 23.查询所有列

    2024-03-15 12:18:01       17 阅读
  6. 前端协商缓存和强缓存

    2024-03-15 12:18:01       17 阅读
  7. JVM-3

    JVM-3

    2024-03-15 12:18:01      18 阅读
  8. python-0006-django路由

    2024-03-15 12:18:01       25 阅读
  9. Django 数据库表模型与迁移

    2024-03-15 12:18:01       20 阅读
  10. 题目 1124: C语言训练-大、小写问题

    2024-03-15 12:18:01       21 阅读