news 2026/7/12 5:12:11

LeetCode热题100--416. 分割等和子集--中等

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
LeetCode热题100--416. 分割等和子集--中等

题目

给你一个 只包含正整数 的 非空 数组 nums 。请你判断是否可以将这个数组分割成两个子集,使得两个子集的元素和相等。

示例 1:
输入:nums = [1,5,11,5]
输出:true
解释:数组可以分割成 [1, 5, 5] 和 [11] 。

示例 2:
输入:nums = [1,2,3,5]
输出:false
解释:数组不能分割成两个元素和相等的子集。

题解

importjava.math.BigInteger;classSolution{publicbooleancanPartition(int[]nums){ints=0;for(intx:nums){s+=x;}if(s%2!=0){returnfalse;}s/=2;BigIntegerf=BigInteger.ONE;for(intx:nums){f=f.or(f.shiftLeft(x));// f |= f << x;}returnf.testBit(s);// 判断 f 中第 s 位是否为 1}}

解析

出自:三种写法:记忆化搜索 / 递推 / bitset 优化(Python/Java/C++/C/Go/JS/Rust)

importjava.math.BigInteger;classSolution{publicbooleancanPartition(int[]nums){// 计算数组所有元素的总和 sints=0;for(intx:nums){s+=x;}// 如果总和是奇数,则无法分成两个相等的子集(因为和必须是整数)if(s%2!=0){returnfalse;}// 目标子集和为总和的一半s/=2;// 使用 BigInteger 模拟位集(bitmask),f 的第 i 位为 1 表示“可以组成和为 i”// 初始状态:f = 1(二进制 ...0001),表示和为 0 总是可以达成(空子集)BigIntegerf=BigInteger.ONE;// 遍历每个数字 xfor(intx:nums){// 核心操作:f = f OR (f << x)// 含义:对于当前所有可达的和 i(f 的第 i 位为 1),// 新增一个选择:加上 x,得到和 i + x// 所以将 f 左移 x 位(表示所有和都加 x),再与原 f 合并(OR)f=f.or(f.shiftLeft(x));// 等价于 f |= f << x(但 BigInteger 无 |= 运算符)}// 检查第 s 位是否为 1:如果是,说明可以组成和为 s 的子集// 即存在一个子集,其元素和等于总和的一半 → 可分割returnf.testBit(s);// testBit(n) 返回第 n 位是否为 1(从最低位 0 开始计数)}}
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/6/21 15:55:58

YOLO目标检测支持字段投影?减少GPU数据传输

YOLO目标检测支持字段投影&#xff1f;减少GPU数据传输 在智能工厂的质检流水线上&#xff0c;摄像头每秒捕捉数百帧高清图像&#xff0c;YOLO模型飞速识别缺陷产品。但你是否想过——这些画面中真正需要分析的区域&#xff0c;可能只占整个画面的不到30%&#xff1f;其余部分&…

作者头像 李华
网站建设 2026/7/1 7:55:33

YOLO模型支持OpenVINO?Intel GPU部署指南

YOLO模型支持OpenVINO&#xff1f;Intel GPU部署指南 在智能制造车间的高速流水线上&#xff0c;每分钟数百件产品飞速流转&#xff0c;视觉系统必须在毫秒级内完成缺陷检测并触发分拣动作。传统基于CPU的目标检测方案常常因延迟过高而错过关键帧&#xff0c;导致漏检率上升&am…

作者头像 李华
网站建设 2026/6/24 3:10:10

YOLO开源项目贡献指南:提交代码前先用GPU测试

YOLO开源项目贡献指南&#xff1a;提交代码前先用GPU测试 在现代计算机视觉开发中&#xff0c;向主流目标检测框架如YOLO提交代码&#xff0c;早已不是“写完能跑”那么简单。尤其当你修改的是模型结构、训练逻辑或数据流时&#xff0c;一个看似无害的改动——比如忘记把某个张…

作者头像 李华
网站建设 2026/7/8 8:02:46

YOLO开源项目Star破万!背后是强大的GPU支持

YOLO开源项目Star破万&#xff01;背后是强大的GPU支持 在工业质检线上&#xff0c;一台摄像头正以每秒60帧的速度捕捉零件图像。传统视觉系统还在为光照变化和遮挡问题焦头烂额时&#xff0c;搭载YOLO模型的工控机已经完成了上千次推理——从缺陷识别到报警触发&#xff0c;整…

作者头像 李华
网站建设 2026/7/8 8:04:33

[Linux外设驱动详解]RK3588 U-Boot Recovery 功能详解

RK3588 U-Boot Recovery 功能详解 目录 概述 核心数据结构 启动模式定义 Recovery 触发方式 启动模式检测机制 Recovery 启动流程 RockUSB 下载模式 相关文件清单 概述 RK3588 平台的 U-Boot Recovery 功能是 Android 系统恢复机制的重要组成部分。它支持通过多种方式进入 re…

作者头像 李华
网站建设 2026/7/1 7:55:39

面试官:如何在 Kafka 中实现延迟消息?

今天我们来聊一个消息队列问题&#xff0c;“如何在 Kafka 中实现延迟消息&#xff1f;” 这其实是一道非常见功底的题目。为什么这么说&#xff1f;因为 Kafka 原生并不支持延迟消息&#xff0c;这是它的基因决定的——它是一个追加写的日志系统&#xff08;Append-only Log&…

作者头像 李华