力扣第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;
    }
};

posted on 2020-03-14 23:21  woodjay  阅读(85)  评论(0编辑  收藏  举报

导航