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

华为官方网站手机商城首页软件工程师级别

华为官方网站手机商城首页,软件工程师级别,岳阳网站制作,建设企业小程序多少钱LeetCode 1049 最后一块石头的重量 继续昨天没有详细说的01背包问题往下继续说。01背包问题是将dp从一维问题升维到二维之后会遇到的一类典型问题。dp数组自然而然地是一个横坐标表示物品序号-1,纵坐标表示背包重量的二维数组。01背包由一个背包是否放该物品并比照后…

LeetCode 1049 最后一块石头的重量


  1. 继续昨天没有详细说的01背包问题往下继续说。01背包问题是将dp从一维问题升维到二维之后会遇到的一类典型问题。dp数组自然而然地是一个横坐标表示物品序号-1,纵坐标表示背包重量的二维数组
  2. 01背包由一个背包是否放该物品并比照后得到最大值,来表示表示子问题和当前问题之间关系组成递推逻辑。递推过程中由于物品数组逐渐增加,dp[i][j]在每一轮总是由dp[i-1][j]递推而来,因此可以简化为用一维滚动数组来表示。但这样第二重循环中由于从前往后遍历dp[i][0]会被存放多次,因此要从后往前遍历,同时由于我们递推公式是一个将i号物品放入背包,j减去其容量值将dp数组值加上物品value的过程,这个过程逆序时前面的dp值也是正常放入了值不会被覆盖的。也因此,我们可以采用一维数组来节省空间,但要稍微调整内层循环遍历顺序。

初始化都默认为零即可。

class Solution {public int lastStoneWeightII(int[] stones) {int sum = 0;for (int i = 0; i < stones.length; i++) {sum += stones[i];}int weight = sum / 2;int[] dp = new int[weight + 1];for (int i = 0; i < stones.length; i++) {for (int j = weight; j >= stones[i]; j--) {dp[j] = Math.max(dp[j], dp[j - stones[i]] + stones[i]);}}return (sum - dp[weight] * 2);}
}

这道题转化为01背包问题的思路可以自行思考或者参照题解。

LeetCode 494 目标和


  • 这一题其实还是可以转化为01背包问题。不过要加上目标数之后除以2,如果加上之后为奇数或者小于0就直接返回0即可。否则我们直接用01背包模式求解即可。但是要注意由于我们求的是方法数,所以要更改下递推公式为加上之前子问题的方法数。

代码如下:

class Solution {public int findTargetSumWays(int[] nums, int target) {int sum = 0;for (int i = 0; i < nums.length; i++) {sum += nums[i];}sum += target;if (sum < 0) return 0;if (sum % 2 == 1) return 0;sum /= 2;int[] dp = new int[sum + 1];dp[0] = 1;for (int i = 0; i < nums.length; i++) {for (int j = sum; j >= nums[i]; j--) {dp[j] += dp[j - nums[i]];}}return dp[sum];}
}

LeetCode 474 一和零


这题和上面差不多,还是用的01背包问题,而且要更明显一些。

代码如下:

class Solution {public int findMaxForm(String[] strs, int m, int n) {int[] n0 = new int[strs.length];int[] n1 = new int[strs.length];for (int i = 0; i < strs.length; i++) {for (int j = 0; j < strs[i].length(); j++) {if (strs[i].charAt(j) == '0') n0[i]++;else n1[i]++;}}int[][] dp = new int[m + 1][n + 1];for (int i = 0; i < strs.length; i++) {for (int j = m; j >= n0[i]; j--) {for (int k = n; k >= n1[i]; k--) {dp[j][k] = Math.max(dp[j][k], dp[j - n0[i]][k - n1[i]] + 1);}}}return dp[m][n];}
}

http://www.yayakq.cn/news/130022/

相关文章:

  • 注册域名建设网站口碑营销的概念
  • 呼和浩特企业网站网站规划与建设模板
  • 静态网站 插件长沙网络优化推广公司
  • 轮播 wordpress白云百度seo公司
  • 湖北专业网站建设耗材网络设计概念
  • 湖北网站建设xiduyun江苏华柯建设发展有限公司网站
  • 网上商城网站设计做自媒体小视频哪个网站比较赚钱
  • 电子商务网站如何设计python3 网站开发实例
  • 手机制作企业网站重型机械网站开发模版
  • 南通网站建设找哪家好上海市建设工程咨询行业协会官网
  • jsp网站开发书籍推荐用dw做的网页怎么连到网站上
  • 天津网站建站推广wordpress 相片
  • 玉溪哪有网站建设服务公司浙江网站建设哪里有
  • 布吉做网站公司外贸网站案例
  • 做网站协议怎么签樟木头网站推广
  • 工信部网站备案查询 验证码错误wordpress域名变了
  • 电子商务毕设做网站seo谷歌外贸推广
  • 任丘住房建设局网站wordpress 自带主题
  • 南阳网站建设制作怎么用网站做远控
  • app平台网站搭建南京开发门户网站的公司
  • 福建省建设干部培训中心网站首页如室室内设计网
  • 做网站一定要注册域名吗杭州网站开发企业
  • 企业网站有哪些功能经典的公司简介
  • 深圳网站设计哪家强wordpress主题显示不出来
  • 高端网站建设济南兴田德润简介电话织梦网站 伪静态
  • 外贸网站做排名网游排行榜2021前十名
  • 超值的郑州网站建设为什么会有免费制作网站
  • 后端网站开发遇到的难题解决织梦的手机端网站
  • 长沙模板建站哪家好华夏名网网站建设教程
  • 有没有建筑学做区位分析的网站想做外贸生意如何起步