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. 将数组分成和相等的三个部分相关推荐

  1. leetcode —— 1013. 将数组分成和相等的三个部分

    给你一个整数数组 A,只有可以将其划分为三个和相等的非空部分时才返回 true,否则返回 false. 形式上,如果可以找出索引 i+1 < j 且满足 (A[0] + A[1] + - + A ...

  2. LeetCode 2035. 将数组分成两个数组并最小化数组和的差

    文章目录 一.题目 1.题目描述 2.基础框架 3.原题链接 二.解题报告 1.思路分析 2.算法详解 3.时间复杂度 4.代码详解 三.本题小知识 四.加群须知 一.题目 1.题目描述   给你一个 ...

  3. python【力扣LeetCode算法题库】1013-将数组分成和相等的三个部分(贪心)

    将数组分成和相等的三个部分 给你一个整数数组 A,只有可以将其划分为三个和相等的非空部分时才返回 true,否则返回 false. 形式上,如果可以找出索引 i+1 < j 且满足 (A[0] ...

  4. LeetCode 2035. 将数组分成两个数组并最小化数组和的差(状态压缩DP)

    文章目录 1. 题目 2. 解题 1. 题目 给你一个长度为 2 * n 的整数数组. 你需要将 nums 分成 两个 长度为 n 的数组,分别求出两个数组的和,并 最小化 两个数组和之 差的绝对值 ...

  5. LeetCode 1712. 将数组分成三个子数组的方案数(前缀和 + 二分查找)

    文章目录 1. 题目 2. 解题 221 / 3117,前7.1% 574 / 9692,前 5.9% 周赛前2题如下: LeetCode 5641. 卡车上的最大单元数(排序,模拟) LeetCod ...

  6. LeetCode 1121. 将数组分成几个递增序列

    文章目录 1. 题目 2. 解题 1. 题目 给你一个 非递减 的正整数数组 nums 和整数 K,判断该数组是否可以被分成一个或几个 长度至少 为 K 的 不相交的递增子序列. 示例 1: 输入:n ...

  7. [Swift]LeetCode1013. 将数组分成和相等的三个部分 | Partition Array Into Three Parts With Equal Sum...

    ★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★ ➤微信公众号:山青咏芝(shanqingyongzhi) ➤博客园地址:山青咏芝(https://www.cnblog ...

  8. LeetCode 410. 分割数组的最大值(极小极大化 二分查找 / DP)

    文章目录 1. 题目 2. 解题 2.1 二分查找 2.2 DP 1. 题目 给定一个非负整数数组和一个整数 m,你需要将这个数组分成 m 个非空的连续子数组. 设计一个算法使得这 m 个子数组各自和 ...

  9. LeetCode 1497. 检查数组对是否可以被 k 整除(余数配对)

    1. 题目 给你一个整数数组 arr 和一个整数 k ,其中数组长度是偶数,值为 n . 现在需要把数组恰好分成 n / 2 对,以使每对数字的和都能够被 k 整除. 如果存在这样的分法,请返回 Tr ...

最新文章

  1. 编码和解码、调制与解调
  2. C语言(CED)最长公共子序列----动态规划第一题
  3. php fuzzy,模糊C均值聚类算法(Fuzzy C-means)
  4. ETL学习总结(2)——ETL数据集成工具之kettle、sqoop、datax、streamSets 比较
  5. Linux上使用Cron启动定时任务
  6. Oracle 学习资料汇总
  7. linux修改重传次数,《关于TCP SYN包的超时与重传》——那些你应该知道的知识(四)...
  8. QThread: Destroyed while thread is still running 解决方法
  9. Apple Pay初探
  10. 对于时间管理初识--时间管理入门
  11. DS18B20 数字温度传感器的使用和基于RT-Thread操作系统的实现
  12. 黄金分割圆怎么画matlab,黄金分割线的画法和使用方法
  13. 微信小程序页面界面元素自适应
  14. Ubuntu bpy(blender)的pip安装
  15. 网友自制 MIUI 13 海报被疯传
  16. 千呼万唤始出来,犹抱琵琶半遮面-go语言初识
  17. 简单好玩经典有趣的微信小游戏
  18. mysql三m架构为什么_AnalyticDB for MySQL 3.0 技术架构解析
  19. angularjs pdf插件_AngularJS权威教程 PDF扫描版[14MB]
  20. 阿里云负载均衡【SLB】使用实践方案

热门文章

  1. 客户端程序自动更新(升级)的方式
  2. 数据结构:排序算法之插入排序
  3. 嵌入式Linux中的根文件系统
  4. x210开发板的三种启动方式(三星推荐的,分散加载,uboot采用的)
  5. C++远航之封装篇——默认构造函数、初始化列表、拷贝构造函数
  6. 字体文件解析 c语言,如何正确地从C语言的文件中读取某些字符串?
  7. 什么时候需要好教材和好教材是怎样的
  8. (翻译)Google Guava Cache
  9. 行先知 为您的办公室管理提供方便
  10. CentOS6.4安装包初识