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

高端企业网站模板qq群排名优化软件官网

高端企业网站模板,qq群排名优化软件官网,wordpress gif封面,南山做网站多少钱一、题目 给你一个整数数组 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/91204.html

相关文章:

  • 在线看视频网站怎么做百度推广管家登录
  • 美食网站 怎么做推56论坛
  • 怎样学做网站权重查询工具
  • 深圳龙华区龙华街道高坳新村seo专业优化方法
  • 怎么查网站找谁做的域名推荐
  • 开发一个商城网站需要多少钱seo赚钱培训
  • 沂水做网站营销案例最新
  • 网站流量少seo分析报告
  • iis7.0 asp网站配置网络营销推广策划方案
  • 网站建设 厦门宁波seo网络推广报价
  • 公安局门户网申请表怎么下载谷歌seo公司
  • 合肥建站关键词优化精灵
  • 怎么自创网站搜素引擎优化
  • 张家港企业网站设计艺术培训学校招生方案
  • 做建材网站怎么做如何自己做一个软件
  • 自己 做 网站无锡seo公司哪家好
  • 美国网站建设公司哪家好出售友情链接是什么意思
  • 那个公司做网站长尾关键词挖掘熊猫
  • 微博优惠券网站怎么做社区推广
  • 手机网站制作机构网络营销的宏观环境
  • 上海营销型网站建设公司宁波seo服务推广
  • 哪个公司做网站专业在百度做广告多少钱
  • 鄂州网站建设网络公司邯郸网站优化
  • java编程做网站百度推广授权代理商
  • 付费推广网站搜索引擎营销有哪些
  • 学校html网站模板站优云网络公司
  • 怎么做网站链接六六seo基础运营第三讲
  • 养生网站源码吉林seo基础
  • seo外贸网站建设青岛排名推广
  • 黑色风格网站主页面微博seo营销