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

做淘客网站 备案东莞专业网站推广策划

做淘客网站 备案,东莞专业网站推广策划,wordpress标题大小,自做网站好做吗题目 给你一个 只包含正整数 的 非空 数组 nums 。请你判断是否可以将这个数组分割成两个子集,使得两个子集的元素和相等。 示例 示例 1: 输入:nums [1,5,11,5] 输出:true 解释:数组可以分割成 [1, 5, 5] 和 [11] 。…

题目

给你一个 只包含正整数 的 非空 数组 nums 。请你判断是否可以将这个数组分割成两个子集,使得两个子集的元素和相等。

示例

示例 1:

输入:nums = [1,5,11,5]
输出:true
解释:数组可以分割成 [1, 5, 5] 和 [11] 。

示例 2:

输入:nums = [1,2,3,5]
输出:false
解释:数组不能分割成两个元素和相等的子集。

分析

这是一个典型的 0 - 1 背包问题的变种。要判断是否能将数组 nums 分割成两个子集,使得两个子集的元素和相等,等价于判断数组中是否存在一个子集,其元素和等于数组元素总和的一半。

动态规划

代码解释

计算数组总和:使用 std::accumulate 函数计算数组 nums 的总和 totalSum

判断总和是否为偶数:如果总和是奇数,那么无法将数组分割成两个和相等的子集,直接返回 false

确定目标和:如果总和是偶数,目标和 target 为 totalSum / 2

初始化动态规划数组dp[i][j] 表示前 i 个元素中是否能选出和为 j 的子集。初始化 dp[i][0] 为 true,表示和为 0 的子集总是可以找到(不选任何元素)。

动态规划填充 dp 数组

  • 如果当前元素 nums[i - 1] 大于目标和 j,则不能选择该元素,dp[i][j] = dp[i - 1][j]
  • 否则,可以选择不选当前元素或者选当前元素,dp[i][j] = dp[i - 1][j] || dp[i - 1][j - nums[i - 1]]

返回结果:最终结果为 dp[n][target],表示前 n 个元素中是否能选出和为 target 的子集。

时间复杂度:O(n\times target),n 是数组长度,target 是数组元素总和的一半

空间复杂度:O(n\times target)

class Solution {
public:bool canPartition(vector<int>& nums) {int totalSum = std::accumulate(nums.begin(), nums.end(), 0);// 如果总和是奇数,无法分割成两个和相等的子集if (totalSum % 2 != 0) {return false;}int target = totalSum / 2;int n = nums.size();// dp[i][j] 表示前 i 个元素中是否能选出和为 j 的子集std::vector<std::vector<bool>> dp(n + 1, std::vector<bool>(target + 1, false));// 初始化:和为 0 的子集总是可以找到(不选任何元素)for (int i = 0; i <= n; ++i) {dp[i][0] = true;}// 动态规划填充 dp 数组for (int i = 1; i <= n; ++i) {for (int j = 1; j <= target; ++j) {// 如果当前元素大于目标和 j,则不能选择该元素if (nums[i - 1] > j) {dp[i][j] = dp[i - 1][j];} else {// 否则,可以选择不选当前元素或者选当前元素dp[i][j] = dp[i - 1][j] || dp[i - 1][j - nums[i - 1]];}}}return dp[n][target];}
};    
http://www.dtcms.com/wzjs/796711.html

相关文章:

  • 餐饮网站建设设计价格口碑好的盐城网站建设
  • 网站建设公司需要交税么北京公司地址
  • 做电商需要哪些网站网站开发表格
  • 用路由器做网站搜图片找原图
  • 盛锡福网站中国建设银行山东省分行网站
  • 制作网站的完整步骤学做简单网站视频教程
  • 简述网站的建设流程图官网免费下载
  • iis网站找不到网页广西桂林网站建设
  • 手机门户网站模板推荐6个国外自媒体平台
  • 定制高端网站建设公司上海英文网站建设
  • 做网站要霸屏吗继续教育网站怎么做不了作业
  • 网址导航类网站怎么做网店代运营排名
  • 哪个网站做ppt好wordpress 百度搜索图片
  • 电商直播培训全能优化大师
  • 现在公司网站重要吗做物流网站费用
  • 网站推广ww网站建设案例典型企业案例
  • 洛阳做网站公司哪家好编程软件自学网
  • 成都网站营销seo多少费用网站做啥内容用户多
  • 昆明网站建设注意事项网站 宽屏窄屏自适应
  • 公司域名备案网站名称公司网站开发费计入办公费
  • 商务网站开发wordpress评论调用标签
  • 东莞网站建设运营方案高效网站推广方案
  • 网站建设公司 经营范围企业官方网站建设
  • 最便宜的手机网站建设阿里云 企业 网站
  • seo网站设计多少钱免费直播软件下载
  • 申请建设网站的请示网站建设运营培训总结
  • 如何做网站走查淄博网站建设 leda.cc
  • 仿淘宝网站源码+php用CMS做网站的好处
  • 电子商务网站建设课程设计宁波做网站优化哪家好
  • 做网站行业的动态超级外链工具有用吗