当前位置: 首页 > 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/388836.html

相关文章:

  • 苏州做网站推广关键词优化公司排行
  • 手机维护 Wordpressseo教程免费
  • 济南网站建设培训整站seo优化哪家好
  • 有没有专门做翻译的网站一个万能的营销方案
  • 做动漫网站的小说南宁网站优化
  • 怎么做网站在网上能搜到你百度小说风云榜首页
  • 外网网站网上销售
  • 泉州网站建设推广百度竞价托管外包
  • 淘宝客做网站还是做app酒店营销策划与运营
  • 郏县住房和城乡建设局网站百度公司官方网站
  • 教育网站赏析程序员培训机构排名
  • 创业网站模板谷歌浏览器下载官网
  • 做网站有哪些平台长沙百度提升排名
  • 企业对做营销型网站有什么优势最有效的网络推广方式和策略
  • 企业网站建设webbj谷歌浏览器 安卓下载2023版官网
  • 免费模板网站制作seo优化多少钱
  • 关于网站设计的论文seo营销推广多少钱
  • 网页升级在线观看重庆网页优化seo公司
  • 如何做高清pdf下载网站广告推广精准引流
  • 无锡做网站的公司电话长沙网站优化推广
  • 国际网站哪里做如何建立自己的博客网站
  • 同城做鸡网站镇江seo快速排名
  • 福田做网站沈阳网站制作
  • 网站建站费用免费刷seo
  • 成都网站建设四川冠辰廊坊seo
  • 专业做外贸英文公司网站优化什么
  • 做网站卖东西靠谱不百度竞价软件哪个好
  • 4s店网站建设怎么做关键词排名靠前
  • 沧州手机网站建设小学生简短小新闻摘抄
  • 安徽智能网站建设热狗网站关键词优化