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

北京个人制作网站有哪些内容二手车网站模版

北京个人制作网站有哪些内容,二手车网站模版,三灶网站建设,城乡建设网站职业查询分割等和子集 力扣原题链接 给你一个只包含正整数的非空数组nums。请你判断是否可以将这个数组分割成两个子集,使得两个子集的元素和相等。 示例 1: 输入:nums [1,5,11,5] 输出:true 解释:数组可以分割成 [1, 5, 5] …

分割等和子集

力扣原题链接
给你一个只包含正整数非空数组nums。请你判断是否可以将这个数组分割成两个子集,使得两个子集的元素和相等。
示例 1:

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

示例 2:

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

提示:

1 <= nums.length <= 200
1 <= nums[i] <= 100

01背包理论 (解决能不能装满背包的问题)

分析

  • 分成两个子集,且元素和相同,可以看成将原来的所有元素加和除以2,这不就分成两个子集元素和相同了嘛。然后确定一个子集里的元素和是一半,另一个子集自动旧是另一半。
  • 然后,我们可以将数组中的每个元素看作是一种物品,每个物品的价值(value)等于它的数值,而背包的容量(capacity)等于数组元素的和的一半。
  • 我们的目标是尝试将这些物品放入背包中,使得背包的价值恰好等于容量的一半。
  • 注意如果元素和本来就不能分成两份,那么直接返回·false·。
    在这里插入图片描述

状态定义

我们定义一个二维的动态规划数组 dp,其中 dp[i][j] 表示在前 i 个物品中,能否选取一些物品使得它们的总和等于 j

状态转移方程

在状态转移方程中,我们需要考虑当前物品是否放入背包中的两种情况:

  • 如果不放入当前物品 nums[i - 1],则 dp[i][j] = dp[i - 1][j]
  • 如果放入当前物品 nums[i - 1],则 dp[i][j] = dp[i - 1][j - nums[i - 1]]

综合以上两种情况,状态转移方程为:

dp[i][j] = dp[i - 1][j] || dp[i - 1][j - nums[i - 1]]

初始化

我们需要对动态规划数组进行初始化,当没有物品或背包容量为0时。

Java解题

class Solution {public boolean canPartition(int[] nums) {int sum = 0;for(int a : nums){sum +=a;}if(sum % 2 !=0){return false;}int t = sum/2;int dp [] = new int[t+1];for(int i = 0 ;i < nums.length ;i ++){//遍历物品for (int j =t ; j >=nums[i] ;j--){//遍历背包 ! 倒序!dp[j] = Math.max(dp[j],dp[j-nums[i]]+nums[i]);//背包最大价值的递推公式}}if(dp[t] == t ){//判断背包是否装满return true;}else{return false;}}
}

解题思路总结

通过以上步骤,我们可以分析出解决该问题的关键步骤,并用动态规划的思想进行解决。首先计算数组的总和,然后判断是否为偶数,如果不是偶数则返回false。接着根据动态规划的思想初始化dp数组,然后按照状态转移方程进行状态转移,最终返回dp数组的最后一个值。

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

相关文章:

  • 自己做公司的网站wordpress 不能上传
  • 舟山网站建设有哪些南昌网站建设制作商
  • 网站建设维护费 会计科目个人电脑搭建游戏服务器
  • 如何做产品网站品牌建设运营的最高境界是
  • 判断网站是否被k做软件赚钱的网站
  • 做网站用哪个软件写比较好wordpress页面不显示
  • 网站定位广告个人做网站能赚钱吗
  • 河北建设厅注册中心网站合肥网站建设方案策划
  • 深圳市网站建设科技公司郑州新闻头条最新消息
  • 小白怎样建设公司网站手游网站怎么做
  • 网站建设评比文章住房和规划建设局网站
  • 如何修改网站备案信息信息型网站
  • dj网站建设网站建设预算表样本
  • 优设网站怎么下载百度搜索名字排名优化
  • 下载了源码怎么做网站网站建设国际深圳
  • 昆山市做网站的公司网站相关知识
  • 网站备案号显示红色系统网站怎么做
  • 北京做兼职网站西安旅游景点排名前十名
  • 郑州网站托管公司哪家好西安网页制作培训机构
  • 没有工信部备案的网站是骗子吗php做网站首页修改
  • 会展类网站模板免费建站网页无需登陆
  • 厦门建站系统建设响水哪家专业做网站
  • 海宁长安网站开发网站描文本
  • 网站建设共享ip益阳学校网站建设
  • 开拓网站建设公司任县企业做网站
  • 网站建设终稿确认书免费商城小程序
  • 利用地图建网站程序员培训多少钱
  • 网页制作网站首页做网站东莞选哪家公司好
  • 东台市住房和城乡建设局网站首页设计培训班
  • 做机械设备销售的那个网站好织梦绿色企业网站模板