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

平面设计公司简介资源优化网站排名

平面设计公司简介,资源优化网站排名,乡镇人大网站建设情况汇报,网站建设技能一、题目 给你一个整数数组 coins ,表示不同面额的硬币;以及一个整数 amount ,表示总金额。计算并返回可以凑成总金额所需的 最少的硬币个数 。如果没有任何一种硬币组合能组成总金额,返回 -1 。你可以认为每种硬币的数量是无限的…

一、题目

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

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

二、思考

方法列举:

  • 贪心:根据贪心法则,会先挑最大的,这样的话,会先选择10块的,然后选择1块的,选择过程是:10+1+1+1+1=15,这样显然不是本题的最优解
  • 动态规划:假设 F[i] 表示组成金额i所需的硬币数量,那么F[i] 可能有多种结果,按照题意,选择其中最小的一个结果输出即可。比如F[15]有三种不同的兑换方法(兑换次数分别为5、3、5),最终输出3即可。

在这里插入图片描述

三、动态规划解法

采用以上动态规划的思路,可以将以上过程拆成2个步骤:

  1. 计算第一次挑选每个硬币coin,对应的F[i]:F[i] = F[i - coin] + 1
  2. 及时更新最小值: F[i] = min(F[i], F[i - coin] + 1)

Python代码:

class Solution:def coinChange(self, coins: List[int], amount: int) -> int:dp = [inf] * (amount + 1)  # 定义dp[i]表示,组成金额i所需的最少硬币数量dp[0] = 0for coin in coins: # 计算逐个硬币下的dp[i]for i in range(coin, amount + 1):dp[i] = min(dp[i], dp[i - coin] + 1) # 在计算过程中,还实时比较得到最小的f[i]return dp[amount] if dp[amount] != inf else -1

Ref:

  • Leetcode: https://leetcode.cn/problems/coin-change/?envType=study-plan-v2&envId=top-100-liked
http://www.dtcms.com/wzjs/232713.html

相关文章:

  • cms企业网站雅虎搜索引擎中文版
  • 网站开发的研究方法seo优化的网站
  • 平谷区住房城乡建设委官方网站公司员工培训内容有哪些
  • 想制作自己的网站免费网站谁有靠谱的
  • 政府类网站设计有什么要点系统优化工具
  • 做网站挂靠服务器什么好游戏推广平台
  • 做网站如何选择关键词社交网络推广方法
  • 做个网站跳转链接怎么做网站发布与推广方案
  • 网站优化排名如何做手机推广app
  • 网站建设专业毕业论文合肥网络推广优化公司
  • 怎么用dw制作网站安装百度到手机桌面
  • 怀来网站seo凡科建站的免费使用
  • 网站关键词被改网站建设设计
  • 网站建设难学吗网络营销是什么专业
  • 网站建设与运营考试搜狗关键词排名此会zjkwlgs
  • 苏州营销型网站设计网站seo推广哪家值得信赖
  • 做电商网站就业岗位晋升互联网推广营销
  • 海珠网站建设公司宣传推广网络推广
  • 中国装饰公司营销型网站建设网络软营销
  • 中国建设会计学会网站百度开户渠道
  • 做网站的原型 免费太原seo关键词排名优化
  • 商城网站模板dedeseo网上培训课程
  • html 路径 网站根路径如何自己建立一个网站
  • 网站的产品上传图片百度推广售后服务电话
  • 建设厅特种作业证件查询官网嘉兴seo排名外包
  • 能自己做谱子的网站软文推广营销服务平台
  • 网站发语音功能如何做旧版优化大师
  • 做类似58类型网站竞价sem托管公司
  • 联合建设官方网站内部搜索引擎优化
  • 个人网站 怎么备案竞价销售是什么意思