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

leetcode416.分割等和子集

给你一个 只包含正整数 的 非空 数组 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

思路:类似leetcode139.单词拆分-CSDN博客,如果数组和为奇数,则一定无法分割;如果为偶数,则转换为背包是否能装满问题,dp[j]表示容量j是否能凑成

public boolean canPartition(int[] nums) {int sum=0;for(int i=0;i<nums.length;i++)sum+=nums[i];// 如果是奇数,一定无法分割if(sum%2!=0)return false;// 如果是偶数,则转换为背包是否能装满问题,dp[j]表示容量j是否能凑成boolean [] dp=new boolean[sum/2+1];dp[0]=true;for(int i=0;i<nums.length;i++){//为保证每个物品用一次,从后往前遍历背包!!for(int j=dp.length-1;j>=0;j--){if(dp[j]&&j+nums[i]<dp.length){dp[j+nums[i]]=true;if(j+nums[i]==dp.length-1)return true;}}}return false;}

http://www.lryc.cn/news/523628.html

相关文章:

  • 使用docker-compose安装ELK(elasticsearch,logstash,kibana)并简单使用
  • 深度学习中超参数
  • [JavaScript] 运算符详解
  • Hooks 使用规则
  • Ubuntu 24.04 LTS 安装 Docker Desktop
  • 智能创造的幕后推手:AIGC浪潮下看AI训练师如何塑造智能未来
  • 从 JIRA 数据到可视化洞察:使用 Python 创建自定义图表
  • 【网络原理】万字详解 HTTP 协议
  • PHP企业IM客服系统
  • Linux操作系统的灵魂,深度解析MMU内存管理
  • PHP代码审计学习01
  • 《数据思维》之数据可视化_读书笔记
  • 深度学习常见术语解释
  • 重温STM32之环境安装
  • 使用Flask和Pydantic实现参数验证
  • python_在钉钉群@人员发送消息
  • C语言之装甲车库车辆动态监控辅助记录系统
  • 线性代数概述
  • 使用 ChatGPT 生成和改进你的论文
  • Linux命令行工具-使用方法
  • RV1126+FFMPEG推流项目(7)AI音频模块编码流程
  • 四、华为交换机 STP
  • 服务器卡顿是否等同于遭受CC攻击?
  • 【机器学习实战入门】使用Pandas和OpenCV进行颜色检测
  • 一文大白话讲清楚webpack基本使用——1——完成webpack的初步构建
  • RabbitMQ基础篇
  • GPT-5 传言:一场正在幕后发生的 AI 变革
  • CSS布局与响应式
  • C++的auto_ptr智能指针:从诞生到被弃用的历程
  • iOS - Objective-C 底层实现中的哈希表