力扣第1013题 将数组分成和相等的三部分

Posted woodjay

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了力扣第1013题 将数组分成和相等的三部分相关的知识,希望对你有一定的参考价值。

力扣第1013题 将数组分成和相等的三部分

技术图片

技术图片

class Solution {
    public:
    bool canThreePartsEqualSum(vector<int>& A) {
        int sum = accumulate(A.begin(), A.end(), 0);
        if (sum % 3 != 0)
            return false;
        int temp = sum / 3;
        int len = A.size();
        int left = 0, right = len - 1;
        int leftSum = A[left], rightSum = A[right];
        while (left + 1 < right)
        {
            if (leftSum == temp && rightSum == temp)
            {
                return true;
            }
            if (leftSum != temp)
            {
                leftSum += A[++left];
            }
            if (rightSum != temp)
            {
                rightSum += A[--right];
            }
        }
        return false;
    }
};

以上是关于力扣第1013题 将数组分成和相等的三部分的主要内容,如果未能解决你的问题,请参考以下文章

LeetCode#1013-将数组分成和相等的三个部分-前缀和-双指针

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

力扣第1248题 统计「优美子数组」

动态规划系列之力扣第53题——最大子序和

LeetCode.1013-分割数组为三个和相同的部分

除自身以外的乘积数组(力扣第238题)