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

孝感网站制作衡水网站建设的地方

孝感网站制作,衡水网站建设的地方,宝塔 伪静态 wordpress,植物网站模板1.题目解析 题目来源 1049.最后一块石头的重量II——力扣 测试用例 2.算法原理 首先需要将该问题转化为0-1背包问题后再做分析 1.状态表示 根据数学中的知识我们知道将一个数字分为两个子数后求这两个子数的最小差值,那么就要求这两个子数尽可能接近于原数字的一…

1.题目解析

题目来源

1049.最后一块石头的重量II——力扣

测试用例 

2.算法原理

首先需要将该问题转化为0-1背包问题后再做分析 

 

1.状态表示

根据数学中的知识我们知道将一个数字分为两个子数后求这两个子数的最小差值,那么就要求这两个子数尽可能接近于原数字的一半,那么就一定会出现一大一小两个数或者两个相等的数,这时就需要去找总和不大于原数字一半的数字,然后找到另一半,用另一半减去找到的数字即可,所以需要二维dp表,第一个下标表示已经寻找数字的区间,第二个下标表示此时已寻找并选择数字的总和,即dp[i][j]:在[1,i]区间选择的数字总和不大于(小于或等于) j 的总和大小

2.状态转移方程

首先依旧是背包问题的思路,对最后一个位置进行分类讨论,首先判断当第i个位置不会选取,此时就找到dp[i-1][j],判断此时的方法数;然后判断选取第i个位置的数,此时就需要寻找到dp[i-1][j-nums[i-1]]这个位置的dp表的值,然后加到总方法数中去,当然需要判断j>=nums[i-1]

3.初始化

4.填表顺序

从上到下,每一行从左到右

5.返回值

返回两个子数相减,也就是sum - dp[n][aim]*2(sum - dp[n][aim] 与 dp[n][aim]两个子数)

3.实战代码

class Solution {
public:int lastStoneWeightII(vector<int>& stones){int sum = 0;for(auto e : stones){sum += e;}    int aim = sum / 2;int n = stones.size();vector<vector<int>> dp(n+1,vector<int>(aim+1));for(int i = 1;i <= n;i++){for(int j = 0;j <= aim;j++){dp[i][j] = dp[i-1][j];if(j >= stones[i-1]){dp[i][j] = max(dp[i][j],dp[i-1][j - stones[i-1]] + stones[i-1]);}}}return sum - dp[n][aim] - dp[n][aim];}
};

 代码解析

空间优化 

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

相关文章:

  • 777fj做最好的网站常用的设计网站
  • 西京一师一优课建设网站做旅游宣传图的网站
  • 建设银行住房公积金卡网站下沙网站建设
  • 网站建设法律windows网页制作工具
  • 汉阳网站建设公司做软件需要什么软件
  • 网站开发中标签栏的图标一般都在那个文件中写代码做门户型网站要多少钱
  • 网站设计论文题目网络优化工程师有多累
  • 四秒网站建设建筑模拟3中文版下载
  • 企业网站制作方法微信自助建站系统
  • 网站站建设建设中页中页谢岗镇网站仿做
  • 青岛一点两区救治医院邯郸整站优化
  • 长沙县不错的建站按效果付费南京网站开发南京乐识强
  • 海外百度云网站建设奋进新征程
  • 电影网站怎么做要多少钱网站更换服务器对seo的影响
  • 网站改版对优化的影响相亲小程序源码
  • wordpress能制作视频网站吗要屏蔽一个网站要怎么做
  • 网站建设推进方案吉 360 网站建设
  • 鞍山seoseo确定关键词
  • 网站搭建的费用湖南营销型网站
  • 旅游网站排名前5位的中国城乡与住房建设部网站
  • php个人网站网站建设600元包
  • 阿里巴巴国际站运营模式企业建网站的工作
  • 公司做网站大概多少钱邵阳邵东网站建设
  • 网站优化包括对什么优化省住房与城乡建设厅网站
  • jq插件网站淘宝网网页版登录电脑版官网
  • 嘉兴建设企业网站云南网站制作
  • 网络维护网站建设培训建设银行官方网站首页企业
  • 厦门网络推广网站如何做谷歌优化
  • 大连海外网站建设网站建设河南公司
  • 做企业品牌网站的公司凡科网模板