当前位置: 首页 > news >正文

动态规划-零钱兑换

332.零钱兑换

给你一个整数数组 coins ,表示不同面额的硬币;以及一个整数 amount ,表示总金额。计算并返回可以凑成总金额所需的 最少的硬币个数 。如果没有任何一种硬币组合能组成总金额,返回 -1 。你可以认为每种硬币的数量是无限的。

输入:数组,目标钱
输出:零钱数量
思路:使用动态规划

class Solution {public int coinChange(int[] coins, int amount) {int[] f = new int[amount + 1];f[0] = 0;for(int i = 1; i <= amount; i++){int minNum = Integer.MAX_VALUE;for(int j = 0; j < coins.length; j++){if(i - coins[j] >= 0 && f[i - coins[j]] < minNum){minNum = f[i - coins[j]] + 1;}}f[i] = minNum;}return f[amount] == Integer.MAX_VALUE ? -1 : f[amount];}
}

另外一种写法

class Solution {public int coinChange(int[] coins, int amount) {int[] f = new int[amount + 1];Arrays.fill(f, amount + 1);f[0] = 0;for(int i = 1; i <= amount; i++){for(int j = 0; j < coins.length; j++){if(i - coins[j] >= 0 ){f[i] = Math.min(f[i], f[i - coins[j]] + 1);}}}return f[amount] == (amount + 1) ? -1 : f[amount];}
}
http://www.dtcms.com/a/146659.html

相关文章:

  • 自动驾驶最新算法进展
  • (二十九)安卓开发中DataBinding 和 ViewBinding详解
  • Ubuntu 系统下安装和使用性能分析工具 perf
  • 人工智能在慢病管理中的具体应用全集:从技术落地到场景创新
  • Uniapp:创建项目
  • flutter 专题 六十六 Flutter Dio包网络请求抓包解决方案
  • 《马尼拉》桌游期望计算器
  • 240422 leetcode exercises
  • 2025高频面试算法总结篇【其他】
  • ADB->查看某个应用的版本信息
  • 性能比拼: Nginx vs Apache
  • vdso内核与glibc配合的相关逻辑分析
  • IDEA打不开、打开报错
  • 【Easylive】手动实现分布式事务解决方案流程解析
  • 【Flask】Explore-Flask:早期 Flask 生态的实用指南
  • 多模态大语言模型arxiv论文略读(三十三)
  • 【产品经理思维】
  • 多级缓存架构,让系统更快的跑起来!
  • 特伦斯智慧钢琴评测:如何用科技重塑钢琴学习新体验
  • Cribl 利用表向event 中插入相应的字段-example-01
  • C++入门语法
  • FreeRTOS中的优先级翻转问题及其解决方案:互斥信号量详解
  • 第十四届蓝桥杯 2023 C/C++组 平方差
  • 设计模式 建造者模式
  • Pycharm(九)函数的闭包、装饰器
  • compat-openssl10和libnsl下载安装
  • Java高效合并Excel报表实战:GcExcel让数据处理更简单
  • 靠华为脱胎换骨,但赛力斯仍需要Plan B
  • MySQL访问权限授权问题
  • 二分查找、分块查找、冒泡排序、选择排序、插入排序、快速排序