当前位置: 首页 > 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
  • 新造古镇丨上海古镇朱家角一年接待164万境外游客,凭啥?
  • 我国首个核电工业操作系统发布,将在华龙一号新机组全面应用
  • 特朗普承认“24小时结束俄乌冲突”是玩笑:大家都知道
  • 重新认识中国女性|婚姻,古代传统家庭再生产的根本之道
  • 手机号旧机主信用卡欠款、新机主被催收骚扰四年,光大银行济南分行回应
  • 特朗普说克里米亚将留在俄罗斯,泽连斯基:绝不承认