台州市建设局招聘网站,wordpress批量生成文章,建设工程管理专业,站酷设计网站官网入口文字设计1. 题目
给定一个整数数组 A#xff0c;只有我们可以将其划分为三个和相等的非空部分时才返回 true#xff0c;否则返回 false。
形式上#xff0c;如果我们可以找出索引 i1 j 且满足 (A[0] A[1] … A[i] A[i1] A[i2] … A[j-1] A[j] A[j-1] … A[A.lengt…1. 题目
给定一个整数数组 A只有我们可以将其划分为三个和相等的非空部分时才返回 true否则返回 false。
形式上如果我们可以找出索引 i1 j 且满足 (A[0] A[1] … A[i] A[i1] A[i2] … 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(vectorint 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;}
};