题目
- 给一个数组,由数字组成
- 对数组 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;
}
};