首页 > 其他分享 >416. 分割等和子集

416. 分割等和子集

时间:2023-05-15 10:01:19浏览次数:40  
标签:分割 target nums int sum 416 子集 数组 dp

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


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

标准解法


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

        // dp[i]中的i表示背包内总和
        // 题目中说:每个数组中的元素不会超过 100,数组的大小不会超过 200
        // 总和不会大于20000,背包最大只需要其中一半,所以10001大小就可以了
        vector<int> dp(10001, 0);
        for (int i = 0; i < nums.size(); i++) {
            sum += nums[i];
        }
        // 也可以使用库函数一步求和
        // int sum = accumulate(nums.begin(), nums.end(), 0);
        if (sum % 2 == 1) return false;
        int target = sum / 2;

        // 开始 01背包
        for(int i = 0; i < nums.size(); i++) {
            for(int j = target; j >= nums[i]; j--) { // 每一个元素一定是不可重复放入,所以从大到小遍历
                dp[j] = max(dp[j], dp[j - nums[i]] + nums[i]);
            }
        }
        // 集合中的元素正好可以凑成总和target
        if (dp[target] == target) return true;
        return false;
    }
};

标签:分割,target,nums,int,sum,416,子集,数组,dp
From: https://www.cnblogs.com/lihaoxiang/p/17400973.html

相关文章

  • CVPR'23|泛化到任意分割类别?FreeSeg:统一、通用的开放词汇图像分割新框架
    前言 本文介绍了实现统一、通用和开放词汇图像分割的新框架FreeSeg,它能够灵活地完成任意类别的不同分割任务,处理一个模型中的所有任务和类别。本文转载自极市平台作者|CV开发者都爱看的欢迎关注公众号CV技术指南,专注于计算机视觉的技术总结、最新技术跟踪、经典论文解读、CV......
  • 麻雀搜索算法(SSA)文章复现:《基于Logistic回归麻雀算法的图像分割_陈刚》
    麻雀搜索算法(SSA)文章复现:《基于Logistic回归麻雀算法的图像分割_陈刚》策略为:小孔成像反向学习策略改进发现者策略+Logistic模型动态调节安全阈值——MSSA。代码基本上每一步都有注释,非常易懂,代码质量极高,便于新手学习和理解。ID:3159669427179745......
  • 运用Matlab,LBP分割脸部特征,从而达到识别人物面部表情的效果
    运用Matlab,LBP分割脸部特征,从而达到识别人物面部表情的效果ID:68200670938487412......
  • 关于 Delphi 中流的使用 分割与合并文件的函数
    unitUnit1;interfaceuses Windows,Messages,SysUtils,Variants,Classes,Graphics,Controls,Forms, Dialogs,StdCtrls;type TForm1=class(TForm)  Button1:TButton;  Button2:TButton;  procedureButton1Click(Sender:TObject); ......
  • P4163 [SCOI2007]排列
    Problem给一个数字串\(s\)和正整数\(d\),统计\(s\)有多少种不同的排列能被\(d\)整除(可以有前导\(0\))。多组数据。\(\left\verts\right\vert\le10,1\led\le1000,1\let\le15\)Input第一行一个整数\(t\),表示数据组数。接下来\(t\)行,每行一个数字串\(s\)......
  • Delphi 字符串拆分/分割[1] - TStringList
    1、TStringList默认以','拆分字符onstconstr:String='aaa,bbb,ccc,ddd';varstrs:TStrings;i:Integer;beginstrs:=TStringList.Create;strs.CommaText:=constr;fori:=0toStrs.Count-1doShowMessage(Strs[i]);//aaabbbcccd......
  • 通用AI大型模型Segment Anything在医学图像分割领域的最新成果!
    前言 SAM是一种在自然图像分割方面取得成功的模型,但在医学图像分割方面表现不佳。MedSAM首次尝试将SAM的成功扩展到医学图像,并成为用于分割各种医学图像的通用工具。为了开发MedSAM,首先需要一个大型医学图像数据集,其中包括来自11种不同模态的超过20万个Mask。该数据集......
  • m基于遗传优化的阈值分割算法的雾天图像去雾增强matlab仿真
    1.算法仿真效果matlab2022a仿真结果如下:       2.算法涉及理论知识概要       遗传算法GA把问题的解表示成“染色体”,在算法中也即是以二进制编码的串。并且,在执行遗传算法之前,给出一群“染色体”,也即是假设解。然后,把这些假设解置于问题的“环境”......
  • 模板元编程--TypeList算法--类型分割
    将一个数据列表按照要求尽心分割为两个类型。usinglist1=TypeList<char,double,float,longlong,int,int>;将大于4字节的分为一组,其他分为一组:贴入Fold函数,一会儿用到:template<typenameT>conceptTL=requires{typenameT::isTypeList;typenameT::ty......
  • 论文解读|MetaAI图像分割基础模型SAM——解锁数字大脑“视觉区”
    原创|文BFT机器人内容提要事件背景: 2023年4月5日,MetaAI研究团队发布论文“分割一切”一《SegmentAnything》并在官网发布了图像分割基础模型一SegmentAnythingModel(SAM)以及图像注释数据集Segment-Anything1-Billion(SA-1B)。论文核心观点:目标: MetaAI的目标是通过引入......