LeetCode 1013. 将数组分成和相等的三个部分
1. 题目
给定一个整数数组 A,只有我们可以将其划分为三个和相等的非空部分时才返回 true,否则返回 false。
形式上,如果我们可以找出索引 i+1 < j 且满足 (A[0] + A[1] + … + A[i] == A[i+1] + A[i+2] + … + A[j-1] == A[j] + A[j-1] + … + A[A.length - 1]) 就可以将数组三等分。
提示:
3 <= A.length <= 50000
-10000 <= A[i] <= 10000
来源:力扣(LeetCode)
链接:https://leetcode-cn.com/problems/partition-array-into-three-parts-with-equal-sum
著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。
2. 解题
- 按照题目模拟即可
class Solution {public:bool canThreePartsEqualSum(vector<int>& A) {int sum = 0, i;for(i = 0; i < A.size(); ++i)sum += A[i];if(sum%3 )return false;//不能整除3,错int part1of3 = sum/3;sum = 0;bool cut1 = false, cut2 = false;for(i = 0; i < A.size()-1; ++i)//注意size-1,留一个至少【-1,1,-1,1】{sum += A[i];if(sum == part1of3 && !cut1)//刚好等于1/3{cut1 = true;//第一刀切一下sum = 0;//sum归0}else if(sum == part1of3 && cut1)//刚好等于1/3,且第一刀已切return true;}return false;}
};
LeetCode 1013. 将数组分成和相等的三个部分相关推荐
- leetcode —— 1013. 将数组分成和相等的三个部分
给你一个整数数组 A,只有可以将其划分为三个和相等的非空部分时才返回 true,否则返回 false. 形式上,如果可以找出索引 i+1 < j 且满足 (A[0] + A[1] + - + A ...
- LeetCode 2035. 将数组分成两个数组并最小化数组和的差
文章目录 一.题目 1.题目描述 2.基础框架 3.原题链接 二.解题报告 1.思路分析 2.算法详解 3.时间复杂度 4.代码详解 三.本题小知识 四.加群须知 一.题目 1.题目描述 给你一个 ...
- python【力扣LeetCode算法题库】1013-将数组分成和相等的三个部分(贪心)
将数组分成和相等的三个部分 给你一个整数数组 A,只有可以将其划分为三个和相等的非空部分时才返回 true,否则返回 false. 形式上,如果可以找出索引 i+1 < j 且满足 (A[0] ...
- LeetCode 2035. 将数组分成两个数组并最小化数组和的差(状态压缩DP)
文章目录 1. 题目 2. 解题 1. 题目 给你一个长度为 2 * n 的整数数组. 你需要将 nums 分成 两个 长度为 n 的数组,分别求出两个数组的和,并 最小化 两个数组和之 差的绝对值 ...
- LeetCode 1712. 将数组分成三个子数组的方案数(前缀和 + 二分查找)
文章目录 1. 题目 2. 解题 221 / 3117,前7.1% 574 / 9692,前 5.9% 周赛前2题如下: LeetCode 5641. 卡车上的最大单元数(排序,模拟) LeetCod ...
- LeetCode 1121. 将数组分成几个递增序列
文章目录 1. 题目 2. 解题 1. 题目 给你一个 非递减 的正整数数组 nums 和整数 K,判断该数组是否可以被分成一个或几个 长度至少 为 K 的 不相交的递增子序列. 示例 1: 输入:n ...
- [Swift]LeetCode1013. 将数组分成和相等的三个部分 | Partition Array Into Three Parts With Equal Sum...
★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★ ➤微信公众号:山青咏芝(shanqingyongzhi) ➤博客园地址:山青咏芝(https://www.cnblog ...
- LeetCode 410. 分割数组的最大值(极小极大化 二分查找 / DP)
文章目录 1. 题目 2. 解题 2.1 二分查找 2.2 DP 1. 题目 给定一个非负整数数组和一个整数 m,你需要将这个数组分成 m 个非空的连续子数组. 设计一个算法使得这 m 个子数组各自和 ...
- LeetCode 1497. 检查数组对是否可以被 k 整除(余数配对)
1. 题目 给你一个整数数组 arr 和一个整数 k ,其中数组长度是偶数,值为 n . 现在需要把数组恰好分成 n / 2 对,以使每对数字的和都能够被 k 整除. 如果存在这样的分法,请返回 Tr ...
最新文章
- 编码和解码、调制与解调
- C语言(CED)最长公共子序列----动态规划第一题
- php fuzzy,模糊C均值聚类算法(Fuzzy C-means)
- ETL学习总结(2)——ETL数据集成工具之kettle、sqoop、datax、streamSets 比较
- Linux上使用Cron启动定时任务
- Oracle 学习资料汇总
- linux修改重传次数,《关于TCP SYN包的超时与重传》——那些你应该知道的知识(四)...
- QThread: Destroyed while thread is still running 解决方法
- Apple Pay初探
- 对于时间管理初识--时间管理入门
- DS18B20 数字温度传感器的使用和基于RT-Thread操作系统的实现
- 黄金分割圆怎么画matlab,黄金分割线的画法和使用方法
- 微信小程序页面界面元素自适应
- Ubuntu bpy(blender)的pip安装
- 网友自制 MIUI 13 海报被疯传
- 千呼万唤始出来,犹抱琵琶半遮面-go语言初识
- 简单好玩经典有趣的微信小游戏
- mysql三m架构为什么_AnalyticDB for MySQL 3.0 技术架构解析
- angularjs pdf插件_AngularJS权威教程 PDF扫描版[14MB]
- 阿里云负载均衡【SLB】使用实践方案