leetocde-416分割等和子集(01背包)

leetocde-416分割等和子集(01背包)原题链接给定一个只包含正整数的非空数组。是否可以将这个数组分割成两个子集,使得两个子集的元素和相等。注意:每个数组中的元素不会超过 100数组的大小不会超过 200示例 1:输入: [1, 5, 11, 5]输出: true解释: 数组可以分割成 [1, 5, 5] 和 [11]. 示例 2:输入: [1, 2, 3, 5]输出: false解释: 数组不能分割成两个元素和相等的子集.题解先看和如果式奇数,返回false,否则除以2,然后看是否能够用拼凑出整合处于

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全系列IDE使用 1年只要46元 售后保障 童叟无欺

原题链接
给定一个只包含正整数的非空数组。是否可以将这个数组分割成两个子集,使得两个子集的元素和相等。

注意:

每个数组中的元素不会超过 100
数组的大小不会超过 200

示例 1:

输入: [1, 5, 11, 5]

输出: true

解释: 数组可以分割成 [1, 5, 5][11].
 

示例 2:

输入: [1, 2, 3, 5]

输出: false

解释: 数组不能分割成两个元素和相等的子集.

题解
先看和如果式奇数,返回false,否则除以2,然后看是否能够用拼凑出整合处于0

class Solution { 
   
public:
    const int INF = 0x3f3f3f3f;
    bool canPartition(vector<int>& nums) { 
   
        if(nums.size() < 2)return false;
        int sum = 0;
        for(int i = 0;i < nums.size();i ++)sum += nums[i];
        if(sum & 1)return false;
        int target = sum / 2;
        vector<int>f(target + 1,-INF);
        f[0] = 0;
        for(int i = 0;i < nums.size();i ++){ 
   
            for(int j = target;j >= nums[i] ;j --){ 
   
                f[j] = max(f[j],f[j - nums[i]] + nums[i]);
            }
        }
        if(f[target] == target)return true;
        return false;
    }
};
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/168696.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • pycharm无限重置试用期_pycharm只能安装最新版吗

    pycharm无限重置试用期_pycharm只能安装最新版吗pycharm2020.1以上的传统的补丁激活方法已经失效了,但好在还有其他的解决方案。使用大神制作的插件,实现试用期的清零处理,重新获得30天的试用期(推荐方案):下载插件ide-eval-resetter-1.0.4.jar,验证码:9qio打开pycharm,将查看拖动到pycharm窗口,根据提示完成操作。当试用期结束,点击右下角的提示弹窗中的“ResetPyCharm’sEval”即可删除pycharm的用户配置文件。删除下面的文件夹(linux环境下示例),再次打

    2022年8月26日
    2
  • 滑动窗口 leetcode_滑动窗口leetcode

    滑动窗口 leetcode_滑动窗口leetcode原题链接给你一个整数数组 nums,有一个大小为 k 的滑动窗口从数组的最左侧移动到数组的最右侧。你只可以看到在滑动窗口内的 k 个数字。滑动窗口每次只向右移动一位。返回滑动窗口中的最大值。示例 1:输入:nums = [1,3,-1,-3,5,3,6,7], k = 3输出:[3,3,5,5,6,7]解释:滑动窗口的位置 最大值————— —–[1 3 -1] -3 5 3 6 7

    2022年8月8日
    5
  • idea下载及汉化

    idea下载及汉化安装软件和汉化插件下载地址 链接:https://pan.baidu.com/s/1ftvTcFvx0ett7IQhU7Hltg 提取码:b43t 复制这段内容后打开百度网盘手机App,操作更方便哦 现在安装idea–>基本大家都会 汉化: 不是很建议使用汉化版本的.但是原界面对新手不是很友好,也有人说汉化后的界面有的按钮会报错,算了..开始正题吧 先把汉化文件夹…

    2022年6月1日
    106
  • java setproperty 未生效_Java System类setProperty()方法及示例[通俗易懂]

    java setproperty 未生效_Java System类setProperty()方法及示例[通俗易懂]系统类setProperty()方法setProperty()方法在java.lang包中可用。setProperty()方法用于将给定参数(system_property)表示的系统属性与给定另一个参数(system_property_value)一起设置。setProperty()方法是静态方法,因此也可以使用类名进行访问。setProperty()方法方法在设置系统属性时会引发各种异常Sec…

    2022年7月12日
    69
  • linux系统查看网卡命令_linux如何配置网卡

    linux系统查看网卡命令_linux如何配置网卡rhel内核版本号信息:[root@hvrhub~]#uname-aLinuxhvrhub2.6.18-308.el5#1SMPFriJan2717:17:51EST2012x86_64x86_64x86_64GNU/Linux查看网卡的驱动。制造商等信息:[root@hvrhub~]#kudzu–probe–class=network-class:…

    2022年10月19日
    2
  • 区块链进入共享汽车行业,实现共享使用权和所有权

    区块链进入共享汽车行业,实现共享使用权和所有权

    2022年3月13日
    54

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号