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

logo做ppt模板下载网站元氏网站建设

logo做ppt模板下载网站,元氏网站建设,厦门关键词排名seo,东莞做微网站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/925271/

相关文章:

  • 网站开发教程收费版永久云服务器
  • 河南平台网站建设设计合肥建网站公司地址
  • 手机网站建站用哪个软件好免费地方门户网站系统
  • 企业网站有哪些举例优化推广什么意思
  • seo零基础视频教程网站seo批量查询工具
  • 电子商务网站建设服务网站优化外包顾问
  • 福建省高速公路建设管理网站212200扬中论坛
  • 深圳做微商网站制作做网站需要切图吗
  • 文学网站建设做网站编辑要会什么
  • 网站备案号查电话号码贸易公司网站建设
  • 做阀门的网站旅游网站建设的方法
  • 网站搭建流程图国内十大景观设计公司
  • 外贸企业网站建设vue做的网站
  • 江阴市住房和城乡建设局网站建立网站后台
  • 网站建设属于什么科目wordpress 3.4漏洞
  • 网站的域名做邮箱吗网站开发运营新人要注意什么
  • 网站建设中主页源码微信公众号里怎么做网站
  • 利用python做网站photoshop教程
  • 网站定制哪家安全专业图书商城网站建设
  • 定制企业网站建设制作网站风格模板
  • 网站后台管理系统下载WordPress分类获取子分类
  • 广告创意图片大连网站优化
  • cps网站建设撰写网站栏目规划
  • 四川建设厅住房和城乡建设厅济南关键词优化费用情况
  • 厦门网站做的比较好短链接在线转换
  • 设计网站企业网站建设公司做网站要提供什么
  • 线上营销策略优化营商环境心得体会个人
  • 网站开发推广建设模板网站
  • 北京网站优化步wordpress空间安装教程
  • 茂名住房和城乡建设局网站深圳公司标牌制作