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

网站做语言切换宣传推广

网站做语言切换,宣传推广,12306网站做的好垃圾,南通网站制作建设分割等和子集 力扣原题链接 给你一个只包含正整数的非空数组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.ds6.com.cn/news/30893.html

相关文章:

  • 做婚纱网站的图片大全百度云服务器官网
  • 刚做的网站怎么才能搜索到网络优化行业的发展前景
  • 阳江市做网站百度竞价托管公司
  • 政府做网站长沙网站设计
  • 秦皇岛网站推广联系电话全球搜索网站排名
  • 汽车行业网站怎么做免费b站推广网站入口
  • 网站设计活动主题武汉网站建设方案优化
  • 网站开发 发布网店运营推广实训
  • 网站花瓣飘落的效果怎么做传媒公司
  • 山东网站优化重庆森林经典台词
  • dedecms 调用网站内部搜索seo赚钱吗
  • 班级网站建设维护中国网站访问量排行
  • 三位效果网站模版搜索引擎收录查询工具
  • 长沙教育网站开发网站快速收录技术
  • 如何做微网站重庆快速排名优化
  • 电商网站设计制作想要网站导航推广页
  • 如何靠做网站赚钱吗想做app推广项目在哪找
  • 租赁网站空间更换怎么做百度关键词快速排名
  • 网页设计师学习网站网站有吗免费的
  • 网站制作平台能赚钱吗app渠道推广
  • 百度云 建网站怎么知道自己的域名
  • 网站开发工程师和web前端的区别游戏加盟
  • 青岛网站排名提升做游戏推广怎么找客户
  • 宿松做网站信息流广告有哪些投放平台
  • 现在个人都在哪个网站做外贸刷赞抖音推广网站
  • 如何做淘客网站源码今日新闻头条新闻摘抄
  • 做养生网站怎么赚钱郑州seo推广
  • 做百度竞价网站搜索不到东莞搜索网络优化
  • 网站制作课程多少钱企业培训课程价格
  • 给企业做网站需要什么信息seo网站优化方