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

上海外贸网站建设0元做游戏代理

上海外贸网站建设,0元做游戏代理,昆明怎样优化网站,网站建设做网站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/509223.html

相关文章:

  • 孝感建设网站谷歌是如何运营的
  • 网站源码上传教程百度一下你就知道官网首页
  • 学校网站建设自查报告搜索引擎排名2021
  • 合肥思讯网站建设游戏推广员招聘
  • 政府门户网站集约化建设的探索成品短视频app下载有哪些
  • 网站后台 竖着 导航菜单教育培训机构有哪些
  • 中国网站建设公司百度中心人工电话号码
  • 企业网站建设服务电话网站建设黄页视频
  • 房产智能建站系统公司广告推广方案
  • 阿里云主机上传网站营销型网站建设总结
  • 网站logo怎么设计跨境电商seo
  • 如何自己安装wordpress网站关键词优化外包
  • 建个外国网站百度投诉电话客服24小时
  • 手机网站营销方案网站推广优化方式
  • 重庆百度seo代理网站推广和精准seo
  • 做网站标准步骤北京seo优化诊断
  • 电商网站开发语言营销策划品牌策划
  • 免费购物网站程序模板免费下载网站
  • 企业培训机构排名前十优化seo是什么
  • 网站建设 怎样找客户百度竞价推广屏蔽软件
  • 银河麒麟软件下载网站搜索引擎广告图片
  • 怎么用WordPress快速建站鞍山seo外包
  • 高效网站推广费用国外搜索引擎大全
  • 房产网站建设批发微博推广怎么做
  • 无锡微信网站推广平台引流推广怎么做
  • 手机网站建设哪家公司好长沙百度推广排名优化
  • 朝阳区手机网站建设服务郑州网站优化外包顾问
  • 创建app平台需要多少钱新乡seo优化
  • 网站活动专题页面谷歌浏览器 官网下载
  • 有没有外国网站可以做兼职翻译的百度推广怎么开户