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

416. 分割等和子集

416. 分割等和子集

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

思路:

       

          子集的和为总的一半 

一开始先判断是否为奇,为奇数就false

然后先想到的是dfs,但会超时

所以想到了动规。
 

遍历每个数字num,从后向前更新dp[j],避免重复使用元素。

dp[j] = dp[j] || dp[j - num](选当前数或不选)

代码

class Solution {
public:
    int sum = 0;
    int num[20005];
    bool canPartition(vector<int>& nums) {

        int total = 0;
        for (int num : nums) {
            total += num;
        }
        if (total % 2 != 0)
            return false;
        int target = total / 2;

        vector<bool> dp(target + 1, false);
        dp[0] = true;

        for (int num : nums) {
            if (num > target)
                continue;
            for (int j = target; j >= num; j--) {
                dp[j] = dp[j] || dp[j - num];
            }
        }

        return dp[target];
    }
};

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.dtcms.com/a/120189.html

相关文章:

  • 【WebRTC】开源项目Webrtc-streamer介绍
  • gbase8s之逻辑导出导入脚本(完美版本)
  • Linux:进程程序替换execl
  • 实习技能记录【3】-----Git操作
  • 编写junit测试类 import org.junit.Test;
  • 最新 OpenHarmony 系统一二级目录整理
  • 【详细图文】在VScode中配置python开发环境
  • ReplicaSet、Deployment功能是怎么实现的?
  • C语言:字符串处理函数strstr分析
  • BUUCTF-web刷题篇(14)
  • 边缘计算革命:低功耗GPU在自动驾驶实时决策中的应用
  • [ctfshow web入门] web25
  • 通过扣子平台将数据写入飞书多维表格
  • rockylinux 8 9 升级到指定版本
  • excel的逻辑类型函数(主要包括if、and、or、not、xor、iserror、iferror、true、false、ifs、ifna、switch)
  • 迁移WordPress网站(大文件版本)
  • 任务扩展-输入商品原价,折扣并计算促销后的价格
  • 二十八- Scala
  • 使用LangChain Agents构建Gradio及Gradio Tools(6)——创建自己的GradioTool
  • 关于软件bug描述
  • 核心案例 | 湖南汽车工程职业大学无人机操控与编队技术实验室
  • 引入模型的知识点整理(Three.js)
  • 阅读笔记“BFMSense”
  • MVS 无监督学习
  • docker各种清空缓存命令,下载jdk包总失败,执行完好了
  • BUUCTF-web刷题篇(15)
  • SeaTunnel系列之:部署SeaTunnel的Spark和Flink引擎
  • 时序数据库 TDengine Cloud 私有连接实战指南:4步实现数据安全传输与成本优化
  • (二)链表结构
  • Redis-一般操作