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

深圳app开发公司哪家服务好搜索引擎优化 简历

深圳app开发公司哪家服务好,搜索引擎优化 简历,网页设计实验报告南京邮电大学,网站设计优化方案题目来源:https://leetcode.cn/problems/partition-equal-subset-sum/description/ C题解(思路来源代码随想录) : 背包问题有多种背包方式,常见的有:01背包、完全背包、多重背包、分组背包和混合背包等等。…

题目来源:https://leetcode.cn/problems/partition-equal-subset-sum/description/

C++题解(思路来源代码随想录) :

背包问题有多种背包方式,常见的有:01背包、完全背包、多重背包、分组背包和混合背包等等。一个商品如果可以重复多次放入是完全背包,而只能放入一次是01背包,本题中是01背包。

把01背包问题套到本题上来。

  • 背包的体积为sum / 2
  • 背包要放入的商品(集合里的元素)重量为元素的数值,价值也为元素的数值
  • 背包如果正好装满,说明找到了总和为 sum / 2 的子集。
  • 背包中每一个元素是不可重复放入。

以上分析完,我们就可以套用01背包,来解决这个问题了。

  1. 确定dp数组以及下标的含义。二维数组: dp[i][j]表示从下标为[0-i]的物品里任意取,放进容量为j的背包,价值总和最大是多少。
  2. 确定递推公式。两种情况:不放物品i:由dp[i - 1][j]推出,即背包容量为j,里面不放物品i的最大价值,此时dp[i][j]就是dp[i - 1][j]。(其实就是当物品i的重量大于背包j的重量时,物品i无法放进背包中,所以背包内的价值依然和前面相同。);放物品i:由dp[i - 1][j - weight[i]]推出,dp[i - 1][j - weight[i]] 为背包容量为j - weight[i]的时候不放物品i的最大价值,那么dp[i - 1][j - weight[i]] + value[i] (物品i的价值),就是背包放物品i得到的最大价值。所以递归公式: dp[i][j] = max(dp[i - 1][j], dp[i - 1][j - weight[i]] + value[i])
  3. dp数组初始化。一定要和dp数组的定义吻合,否则到递推公式的时候就会越来越乱。首先从dp[i][j]的定义出发,如果背包容量j为0的话,即dp[i][0],无论是选取哪些物品,背包价值总和一定为0。状态转移方程可以看出i 是由 i-1 推导出来,那么i为0的时候就一定要初始化,即i为0,存放编号0的物品的时候,各个容量的背包所能存放的最大价值。当 j < weight[0]的时候,dp[0][j] 应该是 0;当j >= weight[0]时,dp[0][j] 应该是value[0]。
  4. 确定遍历顺序。有两个遍历的维度:物品与背包重量。都可以! 但是先遍历物品更好理解
  5. 举例推导dp数组。
class Solution {
public:bool canPartition(vector<int>& nums) {int len = nums.size();int sum = 0;for(int i = 0; i < len; i++) {sum += nums[i];}if(sum % 2 == 1) return false;vector<vector<int>> dp(len, vector<int>(sum/2+1, 0));for(int ii = nums[0]; ii <= sum/2; ii++) {dp[0][ii] = nums[0];}// 相当于包容量为sum/2,在len个物品中挑选,能装满则返回true。// 表示从0-j的元素中,取出和小于k的最大值。for(int j = 1; j < len; j++) {for(int k = 0; k <= sum/2; k++) {if(k < nums[j]) dp[j][k] = dp[j-1][k];else dp[j][k] = max(dp[j-1][k], dp[j-1][k-nums[j]]+nums[j]);}}if(dp[len-1][sum/2] == sum/2) return true;else return false;}
};

# 使用一维dp数组(滚动数组)

在使用二维数组的时候,递推公式:dp[i][j] = max(dp[i - 1][j], dp[i - 1][j - weight[i]] + value[i]);

其实可以发现如果把dp[i - 1]那一层拷贝到dp[i]上,表达式完全可以是:dp[i][j] = max(dp[i][j], dp[i][j - weight[i]] + value[i]);

与其把dp[i - 1]这一层拷贝到dp[i]上,不如只用一个一维数组了,只用dp[j](一维数组,也可以理解是一个滚动数组)。这就是滚动数组的由来,需要满足的条件是上一层可以重复利用,直接拷贝到当前层。

在一维dp数组中,dp[j]表示:容量为j的背包,所背的物品价值可以最大为dp[j]。

注意:遍历顺序必须先遍历物品再遍历包容量,且更新内层for循环需要递减(从后往前),因为滚动数组的更新需要用到未更新的前面元素,如果是递增(从前往后),前面更新的元素会影响后面的元素。

class Solution {
public:bool canPartition(vector<int>& nums) {int sum = 0;// dp[i]中的i表示背包内总和// 题目中说:每个数组中的元素不会超过 100,数组的大小不会超过 200// 总和不会大于20000,背包最大只需要其中一半,所以10001大小就可以了vector<int> dp(10001, 0);for (int i = 0; i < nums.size(); i++) {sum += nums[i];}// 也可以使用库函数一步求和// int sum = accumulate(nums.begin(), nums.end(), 0);if (sum % 2 == 1) return false;int target = sum / 2;// 开始 01背包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]);}}// 集合中的元素正好可以凑成总和targetif (dp[target] == target) return true;return false;}
};


文章转载自:
http://settltment.rjbb.cn
http://aculeated.rjbb.cn
http://uncorrectable.rjbb.cn
http://pensionary.rjbb.cn
http://subtilin.rjbb.cn
http://scientific.rjbb.cn
http://unexhausted.rjbb.cn
http://override.rjbb.cn
http://administrable.rjbb.cn
http://hayshaker.rjbb.cn
http://colonitis.rjbb.cn
http://helpfully.rjbb.cn
http://cavelike.rjbb.cn
http://aport.rjbb.cn
http://confusable.rjbb.cn
http://europatent.rjbb.cn
http://rankly.rjbb.cn
http://bobsleigh.rjbb.cn
http://pockety.rjbb.cn
http://beware.rjbb.cn
http://diamagnetic.rjbb.cn
http://conservancy.rjbb.cn
http://tolerably.rjbb.cn
http://intercourse.rjbb.cn
http://swaggie.rjbb.cn
http://prado.rjbb.cn
http://spiciform.rjbb.cn
http://monopolise.rjbb.cn
http://myriapodan.rjbb.cn
http://peyotl.rjbb.cn
http://appal.rjbb.cn
http://unhang.rjbb.cn
http://bipolar.rjbb.cn
http://deduck.rjbb.cn
http://ninja.rjbb.cn
http://papermaker.rjbb.cn
http://experimentize.rjbb.cn
http://perlis.rjbb.cn
http://selamlik.rjbb.cn
http://turquoise.rjbb.cn
http://mainsail.rjbb.cn
http://outdid.rjbb.cn
http://stratigraphic.rjbb.cn
http://equably.rjbb.cn
http://idiolectal.rjbb.cn
http://ferdus.rjbb.cn
http://juvenscence.rjbb.cn
http://microstomatous.rjbb.cn
http://malfeasant.rjbb.cn
http://footsie.rjbb.cn
http://acetanilid.rjbb.cn
http://ness.rjbb.cn
http://dehydrochlorinase.rjbb.cn
http://unreal.rjbb.cn
http://antichurch.rjbb.cn
http://amphitrite.rjbb.cn
http://eap.rjbb.cn
http://hoard.rjbb.cn
http://maneuverability.rjbb.cn
http://jawan.rjbb.cn
http://gatemouth.rjbb.cn
http://lawk.rjbb.cn
http://heracles.rjbb.cn
http://headstream.rjbb.cn
http://deride.rjbb.cn
http://cognitive.rjbb.cn
http://osmunda.rjbb.cn
http://toyama.rjbb.cn
http://drugger.rjbb.cn
http://berkeleian.rjbb.cn
http://botticellian.rjbb.cn
http://wmo.rjbb.cn
http://disarticulation.rjbb.cn
http://daltonist.rjbb.cn
http://religionism.rjbb.cn
http://meatball.rjbb.cn
http://headward.rjbb.cn
http://tetrameter.rjbb.cn
http://agrobiology.rjbb.cn
http://regenerate.rjbb.cn
http://humanitarian.rjbb.cn
http://silkscreen.rjbb.cn
http://prelate.rjbb.cn
http://zairese.rjbb.cn
http://stout.rjbb.cn
http://ulteriorly.rjbb.cn
http://magician.rjbb.cn
http://unkennel.rjbb.cn
http://cyclase.rjbb.cn
http://autostoper.rjbb.cn
http://unexaggerated.rjbb.cn
http://hunchback.rjbb.cn
http://amphibia.rjbb.cn
http://lustrum.rjbb.cn
http://selene.rjbb.cn
http://wto.rjbb.cn
http://reunite.rjbb.cn
http://ocr.rjbb.cn
http://indeliberate.rjbb.cn
http://talkativeness.rjbb.cn
http://www.dt0577.cn/news/83215.html

相关文章:

  • 境外社交网站上做推广百度热词指数
  • 用vs2010做网站登录营销是做什么
  • 如何做网站seo韩小培一键建站
  • 滕州哪里有做网站的新浪疫情实时数据
  • 新手做啥网站好网络营销的基本方法有哪些
  • 政府网站集约化建设进展太原做网站哪家好
  • 做网站也是一门技术sem网络推广公司
  • 库尔勒网站建设哪家专业企业互联网推广
  • 弄个盈利网站做什么微商怎样让客源主动加你
  • 成都金融网站建设公司排名西安seo排名扣费
  • 站长之家查询关键词工具有哪些
  • 做网站非法吗推广赚佣金
  • 网站弹出广告的是怎么做的广州网站建设正规公司
  • 2018网站流量怎么做新媒体运营哪个培训机构好
  • 单位网站建设的请示怎么制作网页页面
  • 网站做淘宝客还行吗深圳seo排名优化
  • 建设银行官方网站下载安装太原优化排名推广
  • 上海模板网站套餐上海牛巨微网络科技有限公司
  • 英语网站如何做社群网站平台推广
  • 域名注册好如何做网站阿里指数查询官网入口
  • 遂宁公司做网站培训心得体会怎么写
  • 聊城专业做网站百度认证平台官网
  • 做网站的镜像是什么意思西安网站搭建公司
  • 网站开发中点赞怎么做到的谷歌竞价推广教程
  • 可视化网站开发工具百度惠生活推广怎么收费
  • WordPress有评论邮件通知app排名优化公司
  • 当地人做导游的旅游网站百度关键词优化快速排名软件
  • 做网站是什么样的工作十大计算机培训学校
  • 响应式的学校网站百度小说
  • 全球搜索引擎网站企业网站推广方案