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

网上兼职做论坛版主 网站编辑长沙免费建站网络营销

网上兼职做论坛版主 网站编辑,长沙免费建站网络营销,用web做购物网站怎么做搜索,网站建设需要基础吗题目链接:416. 分割等和子集 文章讲解:代码随想录 416. 分割等和子集讲解 视频讲解:动态规划之背包问题,这个包能装满吗?| LeetCode:416.分割等和子集 思路和解法 题目: 给你一个 只包含正整…

题目链接:416. 分割等和子集

文章讲解:代码随想录 416. 分割等和子集讲解

视频讲解:动态规划之背包问题,这个包能装满吗?| LeetCode:416.分割等和子集

思路和解法

题目:
给你一个 只包含正整数 的 非空 数组 nums 。请你判断是否可以将这个数组分割成两个子集,使得两个子集的元素和相等。
想法:
第一次接触背包问题,思路还是挺巧妙的,而且通过今天这道题目我感觉熟悉以后可能很多问题都可以转化为背包问题,纯猜测的。01背包二维数组的方法更容易理解,但是一维数组似乎更实用一些,区别也不大,注意一下外层循环遍历物品,更新dp数组从后向前更新即可。

class Solution {
public:
//核心思路:如果能凑出和为所有数字求和的一半,就说明可以分割成功
//凑的过程简化为01背包问题,每个数字只能选一次,每个数字就是物品价值,同时也是物品重量
//假设有一个背包容量为sum/2,就看数字能不能刚好填满背包
//其实直接想似乎不需要价值,但因为背包问题有价值,那就不妨假设数字同时也是物品价值bool canPartition(vector<int>& nums) {//数组长度<=200 数字<=100,求和就小于等于20000,一半就小于等于10000// vector<int> dp(10001, 0);//先判断求和是否是偶数int sum = 0;for (int i = 0; i < nums.size(); i++) {sum += nums[i];}if (sum % 2 == 1) return false;int target = sum / 2;vector<int> dp(target + 1, 0);//一维数组 背包问题 外层循环遍历物品 一维数组要从后往前遍历 防止一个物品多次加入for (int i = 0; i < nums.size(); i++) {//背包空间要大于等于当前物品重量 才考虑可能放入for (int j = target; j >= nums[i]; j--) {//不放入当前物品的最大价值 和 放入当前物品后剩余空间能放的最大价值dp[j] = max(dp[j], dp[j - nums[i]] + nums[i]);}}if (dp[target] == target) return true;return false;}
};
http://www.yidumall.com/news/108967.html

相关文章:

  • 做网站目录seo品牌优化
  • 做百度推广需要有网站吗推广引流的10个渠道
  • 个人建设网站论文合肥seo排名收费
  • wordpress 幻灯片代码在哪里进一步优化营商环境
  • 北京网站如何制作找客户资源的网站
  • python 网站框架企业qq官方下载
  • 北京全包圆装修公司好不好佛山seo培训
  • 个人做流量大的网站360推广登录入口官网
  • 搜狐快站建站樱桃bt磁力天堂
  • 花钱做的网站推广被骗百度关键词排名联系
  • 别人做的网站百度网站验证刷死粉网站推广
  • 网站开发语言 aspseo关键词挖掘工具
  • 360建站公司拼多多搜索关键词排名
  • 四川省建设监理管理协会网站合肥搜索引擎推广
  • 就有公司域名怎么建设网站韩国电视剧
  • 专业自动化网站建设北京seo站内优化
  • 优秀设计师网站it培训
  • 毕业设计代做网站jsp网络营销策划书1500字
  • 类型: 营销型网站建设百度网盘下载速度慢破解方法
  • 代码型网页制作软件整站优化价格
  • 网站开发的评论界面模板廊坊seo推广
  • 企业网站建设的建议影视后期培训班一般要多少钱
  • phpcms女性网站模板关键词提取
  • 建筑网站带图解软文写作范文500字
  • 凤岗仿做网站互联网seo是什么意思
  • 太仓做企业网站搜索引擎优化seo信息
  • 镇江做网站多少钱百度的首页
  • win8导航网站模板谷歌浏览器app下载安装
  • 青岛公司建设网站百度经验官网入口
  • 哈尔滨网站建设托管搜索引擎最新排名