dp专题7 分割等和子集

news2024/11/24 17:16:25

本题链接:力扣(LeetCode)官网 - 全球极客挚爱的技术成长平台

题目:

思路:

由题意,题目意思是给出  数组 nums  找出两个子集它们的元素和相等。

这里两个自己的元素和相等,说明需要 数组 nums 总和可以平分,即 sum % 2 == 0

又因为子集不要求我们所取的元素是连续的,这里只有取或不取,所以我们试着取联想以下 01 背包

其中 容量是 我们的 sum / 2 ,只要我们取的 nums 元素之和 刚好满足 sum / 2 即可,所以我们的 元素中的  价值 和 体积 都是 nums[] 元素值

代码详解如下:

class Solution {
public:
    bool canPartition(vector<int>& nums) {
        vector<int>dp(200*100+10,0);   // 定义 dp 数组
        int sum = 0;    // 计算 (背包容量) 元素和
        for(int &i:nums) sum += i;
        if(sum % 2) return false;   // 如果元素和无法平分,返回 false
        else sum /= 2;
        
        // 开始遍历元素
        for(int &i:nums)
        {
            // 遍历(背包容量) 到达的平分元素和
            for(int j = sum ;j >= i;--j)
            {
                dp[j] = max(dp[j],dp[j - i] + i);
            }
        }
        
        return dp[sum] == sum;
    }
};

最后提交:

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

PyQt5-控件之QDialog(UI-业务分离搭建自定义xDialog)

1.继承QtWidgets.QWidget自定义对话框 继承于QtWidgets.QWidget自定义一个对话框类&#xff1a;SelectingDlg class SelectingDlg(QtWidgets.QWidget): def __init__(self): super(SelectingDlg, self).__init__() self.initUI() def initUI(self):s…

上网行为管理系统丨上网行为管理一体化解决方案

随着互联网的普及和发展&#xff0c;企业的网络安全和员工的行为管理已经成为了一个重要的问题。为了解决这个问题&#xff0c;上网行为管理一体化解决方案应运而生。本文将深入探讨上网行为管理一体化解决方案的背景、概念、重要性、实现方式和未来发展等方面。 一、概念 上网…

守正出奇,穿越周期 - Bytebase 的 2023

前情提要&#xff1a;Bytebase 的 2022&#xff5c;埋头苦干&#xff0c;孕育希望 产品迭代 2023 年共发布了 25 个版本。这个数字和 2022 年一样&#xff0c;除开春节和一次全员疫情&#xff0c;做到了两周一次的更新。 版本号从 1.11.0 升级到了 2.13.0。其中在 5 月份&…

25W以下室内照明应用解决方案:SM2188EN符合新ERP认证标准

随着LED照明技术的不断发展&#xff0c;室内照明领域的需求也在不断增加。针对25W以下室内照明应用&#xff0c;LED驱动芯片SM2188EN是一款新型的解决方案&#xff0c;符合最新的ERP认证标准&#xff0c;能够满足用户对照明产品高效、节能、稳定的需求。 SM2188EN方案原理图 L…

TDD-LTE TAU流程

目录 1. TAU成功流程 1.1 空闲态TAU 1.2 连接态TAU 2. TAU失败流程 当UE进入一个小区&#xff0c;该小区所属TAI不在UE保存的TAI list内时&#xff0c;UE发起正常TAU流程&#xff0c;分为IDLE和CONNECTED&#xff08;即切换时&#xff09;下。如果TAU accept分配了一个新的…

web自动化(5)——关键字驱动

PO 模型会增加测试脚本的编写复杂度&#xff0c;尤其是当测试项目规模较大或者业务逻辑较为复杂时&#xff0c;需要编写大量的 Page Object 类&#xff0c;或者一旦我们的项目发生变动甚至更换项目时&#xff0c;就需要大量修改原来的代码&#xff0c;增加了项目的维护成本。关…

合并数组或对象的几种方法

1.两个数组对象合入一起 const cc [{id: 1,age: 80岁,name: 444,},{id: 1,age: 804岁,name: 2,},{id: 1,age: 803岁,name: 3,},{id: 1,age: 830岁,name: 33,},{id: 1,age: 1022220岁,name: 白龙马111111111,}, ] const reslutList [{id: 1,age: age,name: 唐曾,},{id: 1,age…

windows无命令升级降级node版本

1. node最新版本下载链接 点击最新下载链接&#xff0c;找到对应版本下载并解压 2. 通过命令where node找到node.exe位置 3. 将该位置的node.exe替换为下载解压的最新node.exe 4. 重新执行node -v查看版本 --------------------------------------------------------------…

论文解读:A New CNN Building Block for Low-ResolutionImages and Small Objects

引言 之前通过stride和pooling这些下采样操作&#xff0c;但是这些操作都会或多或少丢失图像的信息&#xff0c;所以这不适用于具有低分辨率图像和小物体的更困难的任务上。像池化选择maxpooling或者是averagepooling、卷积的步长(太大的话会丢失信息)都是很头疼的问题&#x…

QT登录功能开发

登录功能 1选择无按钮的dialog 2登录函数 #include <QApplication> #include <QDialog> #include <QFormLayout> #include <QLineEdit> #include <QPushButton> #include <QMessageBox>class LoginDialog : public QDialog { public:Log…

Axure软件大全:原型设计下载与学习指南!

Axure可以有效地创建原型&#xff0c;包括绘制APP和网页的原型图、框架图、结构图等。Axure内置的小部件可以用来构建动态交互。即使新手设计师不懂程序代码&#xff0c;也可以在Axure中创建复杂、动态、功能丰富的原型。对于想要深入研究和花时间学习程序的设计师来说&#xf…

LeetCode74二分搜索优化:二维矩阵中的高效查找策略

题目描述 力扣地址 给你一个满足下述两条属性的 m x n 整数矩阵&#xff1a; 每行中的整数从左到右按非严格递增顺序排列。每行的第一个整数大于前一行的最后一个整数。 给你一个整数 target &#xff0c;如果 target 在矩阵中&#xff0c;返回 true &#xff1b;否则&…

Android静态代码检查及自定义Lint实现

概述 在日常的项目开发迭代中&#xff0c;相信每个人对与代码质量都是有着高要求的。但是&#xff0c;在所有事情中&#xff0c;人往往就是其中最大的变量因素&#xff0c;个人各异&#xff0c;如何去保障代码质量以及统一规范呢&#xff1f;开发团队也许会严格要求Code-Review…

如何使用Node.js快速创建本地HTTP服务器并实现公网访问服务端

&#x1f49d;&#x1f49d;&#x1f49d;欢迎来到我的博客&#xff0c;很高兴能够在这里和您见面&#xff01;希望您在这里可以感受到一份轻松愉快的氛围&#xff0c;不仅可以获得有趣的内容和知识&#xff0c;也可以畅所欲言、分享您的想法和见解。 推荐:kwan 的首页,持续学…

抖店新手该如何运营?

我是电商珠珠 在抖店开好之后&#xff0c;大部分新手都不知道怎么去运营&#xff0c;今天&#xff0c;我就来给大家详细的讲一下。 第一步&#xff0c;店铺基础设置 我一直跟我的学生讲&#xff0c;一定要懂基本流程&#xff0c;只有前期将流程跑通了后期才可以毫无压力。 …

css 保持元素宽高比 随页面宽度变化高度自适应

目录 1.效果展示 2.代码内容 3.代码解析 &#xff08;1&#xff09;分析inner类写法 &#xff08;2&#xff09;分析container类写法 1.效果展示 2.代码内容 <div class"item"><div class"inner"><di class"container">…

LED显示屏恒流驱动芯片的功能特点

LED显示屏恒流驱动芯片是一种电子器件&#xff0c;用于控制和驱动LED显示屏。由于LED显示屏通常由大量LED灯珠组成&#xff0c;因此需要使用恒流驱动芯片来确保每个LED灯珠都能够正常、均匀地发光&#xff0c;并且能够控制显示的色彩和亮度。 SM16380SF 恒流驱动芯片通常具有以…

Windows本地如何部署Apache服务器搭配内网穿透实现无公网IP远程访问?

文章目录 前言1.Apache服务安装配置1.1 进入官网下载安装包1.2 Apache服务配置 2.安装cpolar内网穿透2.1 注册cpolar账号2.2 下载cpolar客户端 3. 获取远程桌面公网地址3.1 登录cpolar web ui管理界面3.2 创建公网地址 4. 固定公网地址 前言 Apache作为全球使用较高的Web服务器…

RDS创建数据库

目录 创建数据库 创建账号与授权 连接RDS数据库 创建数据库 在创建数据库的页面&#xff0c;你需要设置数据库的名称、字符集、排序规则等信息。 字符集&#xff1a;字符集&#xff08;Character set&#xff09;是多个字符的集合&#xff0c;字符集种类较多&#xff0c;每个…

前缀和算法 -- [模版]二维前缀和

个人主页&#xff1a;Lei宝啊 愿所有美好如期而遇 本题链接 【模板】二维前缀和_牛客题霸_牛客网 输入描述 n是行&#xff0c;m是列&#xff0c;q是查询次数&#xff0c;x1&#xff0c;y1&#xff0c;x2&#xff0c;y2是二维数组的下标。 输出描述 通过两对下标&#x…