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

鞍山网站制作做网站的公司

鞍山网站制作,做网站的公司,产品销售型企业网站,国内域名1.题目描述 2.思路 (1)因为给的任何一个数,都可以用1去拼凑(1也是完全平方数),所以题目要求要用最少的完全平方数 (2)先遍历物品再遍历背包,求的是组合数。 先遍历背包再…

1.题目描述

在这里插入图片描述

2.思路

(1)因为给的任何一个数,都可以用1去拼凑(1也是完全平方数),所以题目要求要用最少的完全平方数
(2)先遍历物品再遍历背包,求的是组合数。
先遍历背包再遍历物品,求的是排列数。
(3)但是这道题中 ,物品之间是没有顺序的。所以for循环可以颠倒。最外层循环遍历 1 到 n,而内层循环遍历所有小于等于 j 的完全平方数(大约是 sqrt(j) 次)。因此,时间复杂度大约是 O(n * sqrt(n))。
在这里插入图片描述
构建 dp 数组时,dp[0] = 0 的意思是:为了表示数字 0,我们不需要任何的平方数,这个是唯一的正确答案。也就是说,0 本身是一个完全平方数。

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

3.代码实现

public class H279 {public int numSquares(int n) {//最大值常量:max 是一个常量,用来初始化 dp 数组中的每个元素。Integer.MAX_VALUE 是整型能表示的最大值,表示一个不可能的值,用来进行最小化更新。int max=Integer.MAX_VALUE;int[] dp=new int[n+1];//初始化 dp 数组:初始化 dp 数组的所有元素为 max,表示默认情况下每个数的最小组合数是最大值。// 这样做是为了确保在后续更新时,dp[j] 会被实际计算的最小值所覆盖。for(int j=0;j<=n;j++){dp[j]=max;}// 当和为0时,组合的个数为0dp[0]=0;// 遍历背包for(int j=1;j<=n;j++) {// 遍历物品//i*i<j,然后平方数i从1开始for(int i=1;i*i<=j;i++){//+ 1:因为我们使用了一个完全平方数 i * i 来表示 j - i * i,所以在 dp[j - i * i] 的基础上,我们加上了这个平方数,表示我们需要再使用一个平方数。dp[j]=Math.min(dp[j],dp[j-i*i]+1);}}return dp[n];}public static void main(String[] args){H279 test=new H279();int n=12;int res=test.numSquares(n);System.out.print(res);}
}
http://www.dtcms.com/wzjs/425869.html

相关文章:

  • 张店网站建设公司潍坊网站建设方案咨询
  • 网站调用网页怎么做百度推广一条资源多少钱
  • html语言做的网站和asp的区别廊坊网站建设公司
  • 安丘住房建设局网站海外自媒体推广
  • 为什么说能进中交不进中建青岛网站关键词排名优化
  • wordpress数据库损坏网站友情链接网站
  • 外贸企业建站公司优秀的网络搜索引擎营销案例
  • 医药企业网站建设要哪些备案上海seo搜索优化
  • 襄阳网站建设-飞鱼网络seo搜索引擎优化5
  • 天津项目网站建设佛山网络公司 乐云seo
  • 邢台网站建设网络公司百度公司全称
  • 建设网站价位seo推广优化排名软件
  • python可以做网站后台吗北京互联网公司有哪些
  • 达内网站建设公司网络推广
  • 信用网站建设原则竞价推广渠道
  • 中国工程造价网百度快照优化的优势是什么
  • 淘宝建设网站靠谱吗山西seo优化公司
  • 佛山做网站哪家好寻找外贸客户的网站
  • 成都极客联盟网站建设公司个人网站制作教程
  • 企业网站建设基本流程seo外链资源
  • 9i网站建设网络营销师证书有用吗
  • 网站设计模板 英文翻译长春网站建设团队
  • django网站开发论文十大营销策划公司排名
  • 天津外包加工网深圳关键词优化公司哪家好
  • 建设淘宝网站需要多少钱湛江seo推广外包
  • 曲阜做网站的公司百度网盘客服人工电话95188
  • 杭州网站运营短视频搜索seo
  • 淡水网站建设公司网页优化包括什么
  • 互联网招聘网站网络营销有几种方式
  • wordpress 单本小说站网站推广是什么