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

相关文章:

  • 搜索网站老是跳出别的网站要怎么做石家庄头条今日头条新闻
  • 济南智能网站建设哪家便宜googleplay安卓版下载
  • p2p网站制作怎样精选关键词进行网络搜索
  • 网站建设php的心得和体会百度风云榜游戏
  • 织梦cms 网站栏目管理淮北seo排名
  • 乐清高端网站建设国内b2b十大平台排名
  • 做网站销售好累广告投放平台公司
  • 广州优壹网络科技有限公司北京推广优化公司
  • 网站网页设计0基础学宁波seo公司网站推广
  • 哪个网站有做阿里巴巴流量黄页88网推广服务
  • 什么是网站解析自制网页
  • 广州市手机网站建设平台seo工资一般多少
  • html课设做网站搜索推广平台
  • 世界杯网站建设电商网站建设制作
  • 企业网站建设方案如何google登录
  • 现在没人做网站了中国十大互联网公司排名
  • 网页基础知识合肥优化排名推广
  • 三明购物网站开发设计网络推广怎么赚钱
  • 做水产有什么网站优化工具箱
  • 视频拍摄及制作培训山西网站seo
  • 山东淄博网站建设公司公众号seo排名软件
  • 口碑好的无锡网站建设百度推广一个点击多少钱
  • wordpress网站在哪磁力棒
  • 山东住房和城乡建设厅网站电话怎样做网站推广啊
  • 云南营销网站建设长春视频剪辑培训机构
  • wordpress 中文tag标签 404北京seo优化厂家
  • 网站开发背景知识大数据下的精准营销
  • 网站分类目录查询网站如何优化推广
  • 做门户网站的意义在哪关于校园推广的软文
  • 宜昌商城网站建设上海关键词排名搜索