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)
上一篇 2022年8月8日 下午5:00
下一篇 2022年8月8日 下午5:00


相关推荐

  • CPU寻址方式

    CPU寻址方式nbsp nbsp nbsp nbsp 汇编语言的语法是指令 指令目的操作数 源操作数 需要处理的数据 立即数 地址 寄存器存放的数据等 称为源操作数 而指令处理结果的存放目的地称为指令目的操作数 寄存器 地址等 而处理器是根据地址从存储单元中取出指令来执行的 根据 CPU 访问数据 寻址 形式的不同划分了以下几种寻址方式 寻址方式 寄存器寻址 立即数寻址 内存寻址 直接寻址 基址寻址 变址寻

    2026年3月18日
    2
  • linux配置ntp时间同步客户端(小红帽系统怎么关闭程序)

    NTP网络时间服务器在LINUX系统设置方法(小红帽版)NTP网络时间服务器在LINUX系统设置方法(小红帽版)第一种方法:1.Linux系统使用命令行配置:在Linux上面执行ntpdate:ntpdate1Array2.168.0.1#1Array2.168.0.1是NTP服务器的IP2.使用hwclock命令,把时间写入bioshwclock-w如果想定时进行时间校准,可以使用crond服务来定时执行。编辑/etc/crontab文件加入下面一行:308**

    2022年4月10日
    78
  • jsp内置对象和作用

    jsp内置对象和作用1 HttpServletR 的 request 对象作用 代表请求对象 用来接收客户端通过 http 协议连接传输到服务器端的数据 2 HttpServletR 的 response 对象作用 代表响应对象 用来向客户端发送数据 3 JspWriter 的 out 对象作用 主要用于向客户端发送数据 其中 JspWriter 是 out 的基类 4 HttpSess

    2026年3月17日
    4
  • 机械键盘恢复出厂fn,机械键盘构成-求助,机械键盘fn键的解决方法

    机械键盘恢复出厂fn,机械键盘构成-求助,机械键盘fn键的解决方法fn 是功能键 非常易于使用 我使用 Rapoo 键盘的合金版本 效果很好 如何从结构和原理上拆卸机械键盘轴 原始的黑色轴由六个部分组成 轴体有两个触点 分别对应于静板和动板 静电膜负责传导 而静电膜影响回弹和声音 弹簧 下盖 上盖 开关盖总行程 4 0 4mm 触发行程 2 0 6mm 初始压力 触发压力 60 段压力 无段落描边 无注释 图片中 BLACKSWITCHL 中此开关的特征压力

    2026年3月18日
    2
  • 设置totalcmd 用文件管理器打开文件所在目录

    设置totalcmd 用文件管理器打开文件所在目录增加工具栏 命令 c windows exporer exe 参数 p 开始路径 c windows 图标文件 c windows explorer exe

    2026年3月17日
    2
  • Android 获取手机分辨率「建议收藏」

    Android 获取手机分辨率「建议收藏」方法一DisplayMetricsdm=newDisplayMetrics();getWindowManager().getDefaultDisplay().getMetrics(dm);Strings=”屏幕的分辨率为:”+dm.widthPixels+”*”+dm.heightPixels;这种方法获取的屏幕高度不包含导航栏高度例如,在一部分辨率为1280×720带虚拟

    2022年8月13日
    13

发表回复

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

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