class Solution(object):
def canThreePartsEqualSum(self, A: 'List[int]') -> bool:
n = len(A)
sums = sum(A)
if sums % 3 != 0:
return False
target = sums // 3 leftpart = 0
leftboundary = n -1
for i in range(n-2):
leftpart += A[i]
if leftpart == target:
leftboundary = i
break rightpart = 0
rightboundary = 0
for j in range(n-1,1,-1):
rightpart += A[j]
if rightpart == target:
rightboundary = j
break if leftboundary < rightboundary:
return True
return False

先判断数组之和是否是3的倍数,如果不是,那么不能三等分。

如果可以,先确定1/3的值,保存在变量target中。

从左向右逐项相加,找到第一组等于target的值的索引,记为i。

从右向左逐项相加,找到第一组等于target的值的索引,记为j。

如果i<j,则可以三等分。

时间复杂度O(n)(三次遍历),64ms,17.4MB。

leetcode1013的更多相关文章

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

    Given an array A of integers, return true if and only if we can partition the array into three non-e ...

随机推荐

  1. 《Java并发编程实战》笔记-OneValueCache与原子引用技术

    /** * NumberRange * <p/> * Number range class that does not sufficiently protect its invariant ...

  2. 史上最全Spring面试71题与答案

    1.什么是spring? Spring是个java企业级应用的开源开发框架.Spring主要用来开发Java应用,但是有些扩展是针对构建J2EE平台的web应用.Spring框架目标是简化Java企业 ...

  3. 以zookeeper为注册中心搭建spring cloud环境

    在spring cloud体系中,有多种手段实现注册中心,本例中采用zookeeper作为注册中心的角色.服务提供者向zookeeper注册,服务消费者从zookeeper中发现服务提供者的相关信息, ...

  4. PHP 多态理解

    PHP 多态   多态性是指相同的操作或函数.过程可作用于多种类型的对象上并获得不同的结果.不同的对象,收到同一消息将可以产生不同的结果,这种现象称为多态性. 多态性允许每个对象以适合自身的方式去响应 ...

  5. [UE4]AnimOffset偏移动画

    在每个在偏移动画要用到的动画文件中设置中设置上图属性. 也可以选择多个动画文件:

  6. Android中Handler.removeCallbacksAndMessages(null)的作用

    众所周知,在Android开发中会大量使用到Handler.但是,由于与activity生命周期不一致,当一个Activity被销毁时,如果Handler对象有Message在排队,则无法释放,进而导 ...

  7. bootstraptable学习(1)数据展示

    最近工作用到bootstraptable,并且一些功能需要很了解这个插件,那么我们便来看看这个东西 1.css与js的引入,顺序肯定是有讲究的,在这里不细说了 2.数据的引入与呈现,我们来看一下官网的 ...

  8. SCCM 2012 R2实战系列之二:前提工作准备

    在上一篇中,我们完成了SQL Server 2012的安装和配置.现在跟大家分享SCCM安装前的准备工作. 2.1 SCCM 2012 R2 准备工作 2.1.1 创建并分配System Manage ...

  9. python 基本数据类型常用方法总结

    [引言] python中基本数据类型的有很多常用方法,熟悉这些方法有助于不仅提升了编码效率,而且能写出高质量代码,本文做总结 int .bit_length:返回二进制长度 str 切片索引超出不会报 ...

  10. python基础知识-(1)语法基础知识总结(转载)

    1.Python标识符 在 Python 里,标识符有字母.数字.下划线组成. 在 Python 中,所有标识符可以包括英文.数字以及下划线(_),但不能以数字开头. Python 中的标识符是区分大 ...