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

平面设计公司简介杭州排名优化公司电话

平面设计公司简介,杭州排名优化公司电话,制作企业网站怎么做,wordpress 面包屑导航修改一、题目 给你一个整数数组 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/130419.html

相关文章:

  • 怎么选择营销型网站建设公司爱站网站长seo综合查询工具
  • 佛山顺德网站制作公司哪家好平台网站开发公司
  • 做网站的上市公司加盟培训机构
  • 游戏网站建设方案书短视频怎么赚钱
  • 销售网站建设常遇到的问题阳江网站建设
  • 郑州大学现代远程教育 《网页设计与网站建设》个人主页注册安全工程师
  • wp做图网站营销的三个基本概念是什么
  • 句容市建设局网站土地挂牌公示丽水百度seo
  • 区块链网站用vue.js做怎么样整合营销案例
  • 奇迹建站模板seo的搜索排名影响因素主要有
  • 网站优化报告上海seo优化外包公司
  • MAC怎么做网站产品推广方案ppt
  • 上海seo网络推广渠道网络优化大师
  • 东港区网站制作品牌运营策略有哪些
  • cnd设计网站吸引人的微信软文
  • 网站是什么字体竞价推广网络推广运营
  • 网站建设sem怎么做搜一搜站长工具
  • 红色基调的网站揭阳百度seo公司
  • 网站备案和不备案的收录之家
  • 手机网站建设的行情甘肃网站推广
  • 北京网站建设 博客新闻营销
  • 建设机械网站方案培训如何优化网站
  • 中国人民银行广州分行门户网站福州seo结算
  • 巴州住房和城乡建设局网站电商平台网站
  • nas wordpress将好的文章转载宁波优化seo是什么
  • 网站流量做那些好合肥网站seo公司
  • 自己做的网站如何盈利seo推广代运营
  • 适合做网站背景的图片推广app赚钱的平台
  • 小企业做网站有用吗网络赚钱推广
  • 网站建设需要什么教材淄博网站优化