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

力扣——322. 零钱兑换

给你一个整数数组 coins ,表示不同面额的硬币;以及一个整数 amount ,表示总金额。

计算并返回可以凑成总金额所需的 最少的硬币个数 。如果没有任何一种硬币组合能组成总金额,返回 -1 。

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

示例 1:

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

示例 2:

输入:coins = [2], amount = 3
输出:-1

示例 3:

输入:coins = [1], amount = 0
输出:0

提示:

  • 1 <= coins.length <= 12
  • 1 <= coins[i] <= 231 - 1
  • 0 <= amount <= 104

这题还是有点儿难度的,刚开始我想的是直接用回溯来做,虽然代码超时了,但是这里也附上我的代码,以儆效尤~

    void traverse(vector<int>& coins,int amount,long long sum,int temp){if(sum>amount) return;for(int i=0;i<coins.size();i++){sum+=coins[i];temp++;if(sum==amount){minl=min(minl,temp);}traverse(coins,amount,sum,temp);sum-=coins[i];temp--;}}int coinChange(vector<int>& coins, int amount) {if(amount==0)return 0;traverse(coins,amount,0,0);return minl==INT_MAX?-1:minl;}

结果不出意外,出意外额~

看了一下数据量,发现用回溯来做确实不太行,好,果断改策略,改用动态规划~

 int coinChange(vector<int>& coins, int amount){if(coins.size()==0)return -1;vector<int> dp(amount+1,amount+1);dp[0]=0;for(int i=1;i<=amount;i++){for(int j=0;j<coins.size();j++){if(i-coins[j]>=0){dp[i]=min(dp[i],dp[i-coins[j]]+1);}}}return dp[amount]==amount+1?-1:dp[amount];}

运行,ok,过了~

这题用动态规划可能还是有点儿难度,一刚开始我还在想状态方程怎么用在coins数组上,后来借鉴了一下别人的思路,用在amount上可能更容易写一点,好吧,我承认我是垃圾~

看了代码还是存在疑问的宝子可以评论区留言哦,私我也行,我们共同成长~

http://www.lryc.cn/news/504194.html

相关文章:

  • .Net_比对Json文件是否一致
  • 科研笔记:ARR 与 ACL rolling
  • 【2024】Camunda常用功能基本详细介绍和使用-上 (1)
  • 用人话讲计算机:Python篇!(十二)正则运算+re模块
  • 使用create-react-app创建工程时报错处理
  • C# 探险之旅:第三十五节 - 类型class之抽象类 (Abstract Class) 和 抽象方法 (Abstract Method)
  • qt-C++笔记之父类窗口、父类控件、对象树的关系
  • Cisco Packet Tarcer配置计网实验笔记
  • 使用torch模拟 BMM int8量化计算。
  • 【FreeMarker】实现生成Controller根据模板勾选的内容查询
  • 深入理解 XPath:XML 和 HTML 文档的利器
  • DDR5 中的数据反馈判决均衡(DFE):全面解析与展望
  • Axure高保真数据可视化大屏图表组件库
  • 100个问题学 langchain 入门 (1/10)
  • 0001.基于springmvc简易酒店管理系统后台
  • 每日一题 326. 3 的幂
  • 解码数据有序之道——常见排序算法总结
  • C语言实现图片文件的复制
  • 一、windows上配置ninja环境
  • 我们来编程 -- win11多jdk版本切换
  • JAVA 图形界面编程 AWT篇(1)
  • C语言 字符串输入输出函数、scanf(“%[^\n]“,)可输入空格 、fgets删除换行符
  • 【蓝桥杯每日一题】推导部分和——带权并查集
  • Linux 磁盘满了怎么办?快速排查和清理方法
  • 【专题】2024年中国新能源汽车用车研究报告汇总PDF洞察(附原数据表)
  • 数据结构之链表笔试题详解
  • 结构化的Prompt
  • 【数字化】华为数字化转型架构蓝图
  • 最新全开源IM即时通讯系统源码(PC+WEB+IOS+Android)部署指南
  • go 跨平台打包