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

416. 分割等和子集

时间:2023-07-27 23:23:07浏览次数:50  
标签:分割 target nums int sum 416 子集 dp

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
class Solution {
    public boolean canPartition(int[] nums) {
        // 当子数组和 == sum/2时即为true
        int sum = 0;
        for (int i : nums) {
            sum+=i;
        }
        if (sum%2 != 0) return false;
        int len = nums.length;
        int target = sum / 2;
        int[] dp = new int[target + 1];
        for(int i = 0; i < len; i++) {
            for(int j = target; j >= nums[i]; j--) {
                //物品 i 的重量是 nums[i],其价值也是 nums[i]
                dp[j] = Math.max(dp[j], dp[j - nums[i]] + nums[i]);
            }
            //剪枝,每一次完成內層的for-loop,檢查是否符合
            if(dp[target] == target)
                return true;
        }
        return false;

    }
}

 

标签:分割,target,nums,int,sum,416,子集,dp
From: https://www.cnblogs.com/fulaien/p/17586394.html

相关文章

  • C#中将字符串分割成字符数组
    在C#中字符串类型String是由一系列的单个字符组合而成,其实可以通过字符串String对象ToCharArray()方法来将字符串中的元素逐一存在数据类型为Char的一维数组中。例如将字符str="ABCDEFG"分割为到一维数组可用下列语句:stringstr="ABCD";char[]strCharArr=str.ToC......
  • python 分割字符
    #输入王小明,输出王小明#读取原始txt文件withopen('D:\\PCCW_Test_Script\\111.txt',encoding='utf-8')asfile1:content=file1.readlines()#print(content)withopen('D:\\PCCW_Test_Script\\222.txt',"w",encoding=......
  • 【Oracle】 instr函数与substr函数以及自制分割函数
    Oracleinstr函数与substr函数以及自制分割函数instr通常被用来作为判断某个字符串中是否含有执行字符串和将返回结果作为一些数据分割的数据,即有模糊查询like的作用,当返回的查询结果的序号为0的时候就是没有匹配上substr函数就是很简单明了,就是个截取字符函数instr函数通常使......
  • 基于深度学习的图像分割技术探究
    导言:图像分割是计算机视觉领域的重要任务,旨在将图像划分为不同的语义区域,实现对图像中感兴趣物体的定位和提取。深度学习作为图像分割的新兴技术,通过卷积神经网络(CNN)等模型,取得了显著的分割效果。本文将探究基于深度学习的图像分割技术的原理、应用以及面临的挑战。第一部分:基于......
  • python 字典 子集
    Python字典子集介绍在Python编程语言中,字典(dictionary)是一种无序、可变和可迭代的数据类型。字典由键(key)和对应的值(value)组成,每个键值对(key-valuepair)之间用逗号隔开,整个字典被花括号包围。字典是一种非常常用的数据结构,用于存储和管理大量的数据。在本文中,我们将探讨Python字......
  • L4168BIOS
    L4168BIOS简介及代码示例一、L4168BIOS简介L4168BIOS是一款用于嵌入式系统的基本输入输出系统(BIOS),它提供了对硬件设备的底层控制和管理功能。L4168BIOS通常嵌入在主板上的存储器中,当计算机启动时,会首先加载并执行L4168BIOS。L4168BIOS的主要功能包括:初始化硬件设备、提供中断服......
  • 2780. 合法分割的最小下标
    2780.合法分割的最小下标如果元素x 在长度为m 的整数数组arr 中满足freq(x)*2>m ,那么我们称x 是支配元素 。其中 freq(x) 是x 在数组arr 中出现的次数。注意,根据这个定义,数组arr 最多 只会有一个 支配元素。给你一个下标从0 开始长度为n 的......
  • java字符串 冒号分割
    Java字符串冒号分割在Java编程中,字符串是一种常见的数据类型,用于存储和处理文本信息。冒号(:)是一种常见的分隔符,用于将字符串分成不同的部分。本文将介绍如何在Java中使用冒号来分割字符串,并提供一些示例代码来帮助读者更好地理解。字符串的分割方法Java提供了多种方法来分割字符......
  • mysql 把搜索结果作为子集
    如何在MySQL中将搜索结果作为子集作为一名经验丰富的开发者,你经常需要在数据库中进行搜索并使用搜索结果作为子集来进一步处理数据。在MySQL中,你可以使用子查询来实现这个目标。下面我将向你介绍整个流程,并提供详细的代码示例。流程概览下面是在MySQL中将搜索结果作为子集......
  • 历年检测、分割、生成算法梳理(2023)
    检测算法 分割算法 生成算法 ......