如何创建网站难吗,嘉祥住房和城乡建设局网站,mvc 网站模板,淄博专业网站建设题目描述#xff1a;
给你一个下标从 0 开始长度为 n 的整数数组 nums 。 如果以下描述为真#xff0c;那么 nums 在下标 i 处有一个 合法的分割 #xff1a;
前 i 1 个元素的和 大于等于 剩下的 n - i - 1 个元素的和。下标 i 的右边 至少有一个 元素#xff0c;也就是…题目描述
给你一个下标从 0 开始长度为 n 的整数数组 nums 。 如果以下描述为真那么 nums 在下标 i 处有一个 合法的分割
前 i 1 个元素的和 大于等于 剩下的 n - i - 1 个元素的和。下标 i 的右边 至少有一个 元素也就是说下标 i 满足 0 i n - 1 。
请你返回 nums 中的 合法分割 方案数。
示例 1
输入nums [10,4,-8,7]
输出2
解释
总共有 3 种不同的方案可以将 nums 分割成两个非空的部分
- 在下标 0 处分割 nums 。那么第一部分为 [10] 和为 10 。第二部分为 [4,-8,7] 和为 3 。因为 10 3 所以 i 0 是一个合法的分割。
- 在下标 1 处分割 nums 。那么第一部分为 [10,4] 和为 14 。第二部分为 [-8,7] 和为 -1 。因为 14 -1 所以 i 1 是一个合法的分割。
- 在下标 2 处分割 nums 。那么第一部分为 [10,4,-8] 和为 6 。第二部分为 [7] 和为 7 。因为 6 7 所以 i 2 不是一个合法的分割。
所以 nums 中总共合法分割方案受为 2 。示例 2
输入nums [2,3,1,0]
输出2
解释
总共有 2 种 nums 的合法分割
- 在下标 1 处分割 nums 。那么第一部分为 [2,3] 和为 5 。第二部分为 [1,0] 和为 1 。因为 5 1 所以 i 1 是一个合法的分割。
- 在下标 2 处分割 nums 。那么第一部分为 [2,3,1] 和为 6 。第二部分为 [0] 和为 0 。因为 6 0 所以 i 2 是一个合法的分割。
题解
前缀和
class Solution {public int waysToSplitArray(int[] nums) {int n nums.length;long left 0, right 0;for (int num : nums) {right num;}int ans 0;for (int i 0; i n - 1; i) {left nums[i];right - nums[i];if (left right) {ans;}}return ans;}
}