代码随想录算法训练营第三十六天|leetcode416题

news/2024/10/9 11:32:25/

一、leetcode第416题

本题要求数组分成两个子集,子集的和是否相等,可以转化为0-1背包问题,即背包容量为数组元素和的1/2,物品大小即为元素大小。设置dp数组,dp[i]表示为背包容量为i能放置的元素大小,可知dp[i]为不放第i个元素和放第i个元素二者的最大值,由于单层数组的特殊性要从后向前遍历才能使得每一个元素只参与dp数组运算一次,最后如果dp数组中下标为target的元素值为target则为true,否则返回false。

具体代码如下:

class Solution {
public:bool canPartition(vector<int>& nums) {vector<int>dp(10001,0);int sum=0;for(int i=0;i<nums.size();i++){sum+=nums[i];}if(sum%2==1){return false;}int target=sum/2;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]);}}if(dp[target]==target){return true;}return false;}
};


http://www.ppmy.cn/news/1404995.html

相关文章

学习python,这篇就够

此文章全面介绍了python语言的基础知识&#xff0c;不过还有第7章文件与数据格式化还未介绍&#xff0c;短期内会及时补充上&#xff0c;不用担心。 因作者水平有限&#xff0c;文章如果有不足的地方&#xff0c;欢迎提出。 文章有的地方可能会有错别字&#xff0c;但不影响学…

八股 -- C#

面向对象 &#xff08;三大特性&#xff09; 三大特性目的是为了提供更好的代码组织、可维护性、扩展性和重用性 C#基础——面向对象 - 知乎 (zhihu.com) 封装 理解&#xff1a; 你不需要了解这个方法里面写了什么代码&#xff0c;你只需要了解这个方法能够给你返回什么数据&…

解密SqlServer数据库引擎:探寻SqlServer的神秘力量(二)

本系列文章简介&#xff1a; 在当今数字化时代&#xff0c;数据库扮演着至关重要的角色。它们是组织和企业存储数据的核心&#xff0c;并为应用程序提供稳定、高效的数据访问。而在众多数据库中&#xff0c;SqlServer无疑是最为强大和受欢迎的之一。 SqlServer是由微软开发的关…

关于atoi函数的使用和模拟实现

这篇文章是关于atoi函数是怎样使用的和我们如何模拟实现它的。话不多说&#xff0c;我们先从C网站上关于atoi的函数信息入手。 函数分析 首先我们可以看到它的返回值是int&#xff0c;形参是一个字符串的首字母地址&#xff0c;它可以省略从字符串开始知道遇见的第一个非空白字…

关于 QSound播放wav音频文件,播放失败“using null output device, none available” 的解决方法

若该文为原创文章&#xff0c;转载请注明原文出处 本文章博客地址&#xff1a;https://hpzwl.blog.csdn.net/article/details/137264493 红胖子(红模仿)的博文大全&#xff1a;开发技术集合&#xff08;包含Qt实用技术、树莓派、三维、OpenCV、OpenGL、ffmpeg、OSG、单片机、软…

【Node.js从基础到高级运用】二十一、使用child_process模块创建子进程

引言 在Node.js中&#xff0c;child_process模块是一个提供了创建和管理子进程的能力的核心模块。通过使用child_process模块&#xff0c;Node.js可以执行系统命令、运行其他脚本或应用程序&#xff0c;实现与Node.js进程的并行处理。 child_process模块提供了几种创建子进程的…

dotnet依赖注入与IOC

依赖注入与IOC IOC IOC 是 Inversion of Control&#xff08;控制反转&#xff09;的缩写。在软件开发中&#xff0c;IOC 是一种设计模式&#xff0c;它改变了传统的程序设计流程&#xff0c;使得对象之间的依赖关系由代码本身控制变为由外部容器控制。 而采用IOC 设计模式后&…

iOS开发进阶(十三):脚手架创建iOS项目

文章目录 一、前言二、xcode-select 命令三、拓展阅读 一、前言 项目初期&#xff0c;需要搭建项目基本框架&#xff0c;为此离不开辅助工具&#xff0c;即脚手架。当然&#xff0c;IDE也可以实现新建空白项目&#xff0c;但是其新建后的项目结构可能不符合预期设计&#xff0…