LeetCode 2270. Number of Ways to Split Array

57 阅读1分钟

🔗 leetcode.com/problems/nu…

题目

  • 给一个数组,由数字组成
  • 对数组 split 成两个非空子数组,使得 left 的 sum 比 right 的 sum 大
  • 返回有几种 split 方案

思路

  • 计算 prefix sum
  • 评估 split 方案的时候,就是看 prefix sum 是否大于整体 sum - prefix sum

代码

class Solution {
public:
    int waysToSplitArray(vector<int>& nums) {
        int ans = 0;
        long long sum = 0;
        for (auto item : nums) {
            sum += item;
        }
        long long pre_sum = 0;
        for (int i = 0; i < nums.size() - 1; i++) {
            pre_sum += nums[i];
            sum -= nums[i];
            if (pre_sum >= sum) ans++;
        }
        return ans;
        
    }
};