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

资溪做面包招聘的网站沈阳cms建站模板

资溪做面包招聘的网站,沈阳cms建站模板,电脑的网页打不开是咋回事,高端的咨询行业网站设计原问题:给定一个非负整数n,如果把它视作一些完全平方数的和,那么最少需要多少个完全平方数? 这次学习到一个热心网友的解法:把问题转化兑换零钱问题,然后使用动态规划求解。 比如,给定 n12, 那…

原问题:给定一个非负整数n,如果把它视作一些完全平方数的和,那么最少需要多少个完全平方数?

这次学习到一个热心网友的解法:把问题转化兑换零钱问题,然后使用动态规划求解。
比如,给定 n=12, 那么我们可以列举出可能的完全平方数{1,4,9}。此时,如果把这些完全平方数视作可获得的硬币面值,把n视作待兑换零钱的总数,那么问题就是求“最少需要多少种硬币,能够把n换成零钱?如果兑换不成功,那么返回-1.”)

class Solution:def numSquares(self, amount: int) -> int:coins=gen_coins(amount) # 找到可能的完全平方数,即 硬币面值coins_kinds=len(coins) # 有多少种 硬币面值dp=[[inf]*(amount+1) for _ in range(coins_kinds+1)]# dp[i][j] 表示 使用前j种面值的硬币(不一定用尽)要凑出i元钱的最少需要的硬币面值种类数dp[0][0]=0 for idx,val in enumerate(coins): # 第idx种硬币的面值为valfor money in range(amount+1): # 待兑换的总数 moneyif money<val: # 当前硬币的面值太大了,用不上,dp[idx+1][money]=dp[idx][money]else: # 考虑‘不用当前面值的硬币’和‘用当前面值的硬币’两种情况dp[idx+1][money]=min(dp[idx][money],dp[idx+1][money-val]+1)ans=dp[coins_kinds][amount]return ans if ans<inf else -1def gen_coins(amount):vals=[]for i in range(1,101):if i*i<=amount: # !! 注意这里是<=vals.append(i*i)else:breakreturn vals
http://www.khdw.cn/news/53396.html

相关文章:

  • seo网络运营南宁seo营销推广
  • 设计专业网址杭州seo网站排名
  • 昌江县住房和城乡建设局网站宁波好的seo外包公司
  • 公司网站里面页面链接怎么做百度网盘app下载安装
  • 动易初级中学网站模板cms 6.8seo系统是什么
  • 网站如何做sem推广比较成功的网络营销案例
  • 商丘柘城做网站口碑营销怎么做
  • 做门户网站赚广告费杭州seo公司
  • 网站免费建立数字营销公司排行榜
  • 红酒哪个网站做的好正规网站建设服务
  • 天助网的网站郑州网
  • 红色大气网站项目推广平台有哪些
  • 北京云主机网站源码郑州seo哪家好
  • 网站开发项目的里程碑win10优化大师怎么样
  • 中交建设 招标有限公司网站免费留电话的广告
  • wordpress 4.6.1 漏洞搜索引擎优化要考虑哪些方面?
  • vr网站制作营销平台建设
  • 农业公司网站建设方案免费网站建设模板
  • cms是哪家公司驻马店网站seo
  • 做外贸国外网站广告视频
  • wordpress3.4.2漏洞seo入口
  • 研究生做网站开发seo网站推广软件 快排
  • wordpress 点击文章图片路径网站关键词排名优化推广软件
  • 郑州机械网站制作好消息tvapp电视版
  • 网站页面的优化深圳推广网络
  • 网站设计网站类型seo优化的方法有哪些
  • 赣州市做网站百度提交入口
  • 安徽池州做企业网站深圳网络营销怎么推广
  • 红河学院网站建设公司网络营销推广
  • 网站图片用什么做的重庆营销型网站建设公司