当前位置: 首页 > 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];}
}

相关文章:

  • 自动驾驶最新算法进展
  • (二十九)安卓开发中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
  • 三江购物:因自身商业需要,第二大股东阿里泽泰拟减持不超3%公司股份
  • 特朗普施压鲍威尔遭多方批评,分析人士:特朗普若解雇鲍威尔或冲击美债
  • 官方披露:WinRAR安全漏洞可绕过安全警告,执行恶意软件
  • 王东杰:重审康有为的“大同世界”
  • 2025中国互联网企业家座谈会在京召开
  • 陈杨梅:为爸爸寻我19年没有放弃而感动,回家既紧张又期待