news 2026/7/9 13:32:00

力扣刷题:将数组分成和相等的三个部分

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
力扣刷题:将数组分成和相等的三个部分

给你一个整数数组 arr,只有可以将其划分为三个和相等的 非空 部分时才返回 true,否则返回 false。

形式上,如果可以找出索引 i + 1 < j 且满足 (arr[0] + arr[1] + … + arr[i] == arr[i + 1] + arr[i + 2] + … + arr[j - 1] == arr[j] + arr[j + 1] + … + arr[arr.length - 1]) 就可以将数组三等分。

示例 1:

输入:arr = [0,2,1,-6,6,-7,9,1,2,0,1]
输出:true
解释:0 + 2 + 1 = -6 + 6 - 7 + 9 + 1 = 2 + 0 + 1

示例 2:

输入:arr = [0,2,1,-6,6,7,9,-1,2,0,1]
输出:false

示例 3:

输入:arr = [3,3,6,5,-2,2,5,1,-9,4]
输出:true
解释:3 + 3 = 6 = 5 - 2 + 2 + 5 + 1 - 9 + 4

解析:
1 计算总和,检查是否能被3整除

2 每部分的目标值是 sum/3

3 遍历数组累加,每当累加和等于 target 时,就找到了一段

4 重置累加器继续找下一段

5 如果能找到至少3段(注意最后一段会自动满足),就返回 true

/** * 检查数组是否能被分成三个连续非空子数组,且每个子数组的和相等 * @param {number[]} arr - 输入的整数数组 * @return {boolean} */varcanThreePartsEqualSum=function(arr){// 1. 计算数组所有元素的总和letsum=0for(leti=0;i<arr.length;i++){sum+=arr[i]}// 2. 如果总和不能被3整除,直接返回false// 因为三部分和相等的话,每部分必须是总和的三分之一if(sum%3)returnfalse// 3. 初始化计数器和当前累加和letcount=0// 记录已经找到的和等于目标值的子数组个数letcurrent=0// 当前子数组的累加和consttarget=sum/3// 每个子数组应该达到的目标值// 4. 遍历数组寻找满足条件的子数组for(leti=0;i<arr.length;i++){current+=arr[i]// 将当前元素加入累加和// 如果当前累加和等于目标值,说明找到了一个符合条件的子数组if(current===target){count++// 找到的子数组数量加1current=0// 重置累加和,开始寻找下一个子数组}}// 5. 如果找到至少3个满足条件的子数组,返回true// 注意:count可能大于3,比如数组中有0的情况:// [1,0,0,1,0,0,1] → 总和=3,target=1,count=7returncount>=3};
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/7/3 22:19:20

腾讯混元3D-Part完全指南:从零开始的3D模型分割与AI建模工具

腾讯混元3D-Part完全指南&#xff1a;从零开始的3D模型分割与AI建模工具 【免费下载链接】Hunyuan3D-Part 腾讯混元3D-Part 项目地址: https://ai.gitcode.com/tencent_hunyuan/Hunyuan3D-Part 腾讯混元3D-Part是一款革命性的AI建模工具&#xff0c;专注于3D模型分割与部…

作者头像 李华
网站建设 2026/6/28 23:42:40

MinerU在macOS上的终极安装指南:解决依赖包兼容性问题

MinerU在macOS上的终极安装指南&#xff1a;解决依赖包兼容性问题 【免费下载链接】MinerU A high-quality tool for convert PDF to Markdown and JSON.一站式开源高质量数据提取工具&#xff0c;将PDF转换成Markdown和JSON格式。 项目地址: https://gitcode.com/OpenDataLa…

作者头像 李华
网站建设 2026/7/4 15:34:02

音乐AI生成技术大揭秘:开源YuE vs 闭源Suno.ai的深度较量

在当前音乐AI生成技术快速发展的时代&#xff0c;开源与闭源两种模式正在重塑音乐创作的方式。作为音乐AI领域的代表性项目&#xff0c;开源的YuE与闭源的Suno.ai在技术实现、定制能力和应用场景上展现出截然不同的特点。本文将通过详细的技术对比和实际案例分析&#xff0c;帮…

作者头像 李华
网站建设 2026/7/3 14:18:48

告别手动炼丹!(Open-AutoGLM自动训练黑科技实测曝光)

第一章&#xff1a;告别手动炼丹&#xff01;Open-AutoGLM初体验在大模型时代&#xff0c;调参炼丹曾是每个算法工程师的日常。从学习率到优化器选择&#xff0c;从数据增强策略到模型结构微调&#xff0c;手动搜索最优配置不仅耗时&#xff0c;还极度依赖经验。而 Open-AutoGL…

作者头像 李华
网站建设 2026/7/1 22:37:13

如何快速掌握Tinycon:3个实用技巧与最佳实践

如何快速掌握Tinycon&#xff1a;3个实用技巧与最佳实践 【免费下载链接】tinycon A small library for manipulating the favicon, in particular adding alert bubbles and changing images. 项目地址: https://gitcode.com/gh_mirrors/ti/tinycon Tinycon是一个轻量…

作者头像 李华
网站建设 2026/7/1 22:36:00

组态软件图库资源完全指南:5分钟快速提升项目视觉效果

组态软件图库资源完全指南&#xff1a;5分钟快速提升项目视觉效果 【免费下载链接】组态王图库资源下载分享 组态王图库资源下载 项目地址: https://gitcode.com/open-source-toolkit/8656f 还在为组态软件界面设计而苦恼吗&#xff1f;这个精心整理的图库资源将彻底改变…

作者头像 李华