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

网站专题页设计北京网站制作费用

网站专题页设计,北京网站制作费用,百度推广怎么开户,企业网站html百度云题意理解#xff1a; 有一堆石头#xff0c;用整数数组 stones 表示。其中 stones[i] 表示第 i 块石头的重量。 每一回合#xff0c;从中选出任意两块石头#xff0c;然后将它们一起粉碎。假设石头的重量分别为 x 和 y#xff0c;且 x y。 思路转化#xff1a;我们可… 题意理解         有一堆石头用整数数组 stones 表示。其中 stones[i] 表示第 i 块石头的重量。         每一回合从中选出任意两块石头然后将它们一起粉碎。假设石头的重量分别为 x 和 y且 x y。         思路转化我们可以将题目转换为将石头分为大小相等差不多的两堆然后相互去撞击这样留下来的残余的石头就是可剩余的最小重量。         如何将石头分为大小相等的两堆呢。         targetsum(stones[])/2向上取整         ressum(stones[])-target 表示剩余的石头重量         此时再一次将题目转换为0-1背包问题         target表示背包重量stones表示物品stones[i]表示第i块石头的重量和价值。         此时问题转换为将物品装入大小为target的背包能获得的最大价值maxValue         此时石头被分为maxValue和sum-maxValue大小的两堆         res|sum-maxValue-maxValue|此时获得最小剩余大小的石头 解题思路         首先理解题意将其转换为一个背包问题使用动态规划的思路来求解。         动态规划五部曲         1dp[i][j]或dp[i]的含义         2递推公式                 dp[i][j]max(dp[i-1][j],dp[i-1][j-weight[i]]values[i])或                 dp[j]max(dp[j],dp[j-weight[i]]values[i])         3根据题意初始化         4遍历求解:先遍历包还是先遍历物品         5打印——debug 1.动态规划二维dp数组 dp[i][j]表示下标[0,j]的元素任务放入大小为j的背包能获得的最大价值递推公式dp[i][j]max(dp[i-1][j],dp[i-1][j-weight[i]]values[i])初始化第一行第一列。遍历由于二维数组完整保留了两个维度所有信息所以先遍历背包还是先遍历物品都是可以的。 public int lastStoneWeightII(int[] stones) {int sum0;for(int num:stones)sumnum;int target(int)Math.ceil(sum/2);int[][] dpnew int[stones.length][target1];//初始化for(int[] tmp:dp) Arrays.fill(tmp,-1);for(int i0;istones.length;i) dp[i][0]0;for(int j1;jtarget;j){if(stones[0]j) dp[0][j]0;else dp[0][j]stones[0];}//遍历for(int i1;istones.length;i){for(int j1;jtarget;j){if(stones[i]j){dp[i][j]dp[i-1][j];}else{dp[i][j]Math.max(dp[i-1][j],dp[i-1][j-stones[i]]stones[i]);}}}return Math.abs(sum-dp[stones.length-1][target]*2);} 2.一维滚动数组——存储压缩 dp[j]表示装满大小为j的背包所能获得的最大价值。递推公式dp[j]max(dp[j],dp[j-weight[i]]values[i])初始化右边的值总是由最左边的值推导而来而最坐标的值dp[0]表示背包大小为0所能获得的最大价值所以有dp[0]0.将所有元素初始化为0遍历由于以为滚动数组是二维dp数组的动态行滚动更新所以遍历顺序总是先物品后背包。注意为了防止用同层修改过的值修改本行其他值导致物体重复放置故采用倒序遍历背包。 public int lastStoneWeightII2(int[] stones) {int sum0;for(int num:stones)sumnum;int target(int)Math.ceil(sum/2);int[] dpnew int[target1];//初始化Arrays.fill(dp,0);//遍历for(int i1;istones.length;i){for(int jtarget;j0;j--){if(stones[i]j){dp[j]dp[j];}else{dp[j]Math.max(dp[j],dp[j-stones[i]]stones[i]);}}}return Math.abs(sum-dp[target]*2);} 3.分析 时间复杂度O(n*target) 空间复杂度         二维O(n*target)         一维O(target) n是nums的长度target是sum(stones)/2的大小
http://www.hkea.cn/news/14499129/

相关文章:

  • 吉林集安市建设局网站网站建设的具体步骤有哪些
  • 华西医院网站开发上海 网站建设 500强
  • 网站上线如何做公司名字自建网站要多少钱
  • 成品网站定制做网站数据库怎么建
  • 芮城做网站的机构网站开发学那个语言比较好
  • 网站vr的建设旅游加盟网站建设
  • 网站建设公司演讲稿湘潭市优化办
  • 音乐网站的设计与开发微山县建设局官方网站
  • linux php网站部署php网站开发练手项目
  • htmi如何做网站网站权重高 做别的关键词
  • 广东阳江房产网谷歌seo怎么优化
  • 网站怎么做301跳转wordpress 站群
  • 怎么做网站网页网络营销外包收费
  • 网上购物网站建设公司网站建设内容规划
  • 国内建站平台有哪些网站黑链 工具
  • 月子会所网站建设方案微信公众平台小程序入口
  • 刚做优化的网站什么能更新网站备案 前置审批文件
  • 北京最新楼盘排行榜seo外包优化公司
  • 搭建一个自己的网站如何在大学网站做宣传
  • 免费教育网站建设前端开发工程师要求
  • 淘宝网站开发实训报告杭州十大电商公司排名
  • 宜春市城乡规划建设局网站做企业网站可以没有后台吗
  • 网站建设安装部署必须买吗网站维护 公司简介
  • 自己做信息网站pc端网游排行榜前十名
  • 个人网站命名 备案开个做网站的公司 知乎
  • 代理东莞网站制作公司可信网站认证有用吗
  • 建站模板有哪些网站建站的流程
  • 网站制作公司兴田德润实力强win7云主机怎么做网站
  • wordpress漫画站主题网站管理员登录入口
  • 山东聊城网站建设嵌入式培训学校