中等
给你一个长度为 n 的 双调 数组 nums。
将数组分为 两 部分:
- 递增部分:从下标 0 到峰值元素(包含)。
- 递减部分:从峰值元素到下标
n - 1(包含)。
峰值元素同时属于这两部分。
返回:
- 如果 递增 部分的和更大,返回 0。
- 如果 递减 部分的和更大,返回 1。
- 如果两部分的和 相等,返回 -1。
注意:
- 双调 数组是指在达到 单个峰值 元素之前 严格递增,然后 严格递减 的数组。
- 如果一个数组的每个元素都 严格大于 它的 前一个 元素(如果存在),则称该数组是 严格递增 的。
- 如果一个数组的每个元素都 严格小于 它的 前一个 元素(如果存在),则称该数组是 严格递减 的。
示例 1:
输入: nums = [1,3,2,1]
输出: 1
解释:
- 峰值元素是
nums[1] = 3 - 递增部分 =
[1, 3],和为1 + 3 = 4 - 递减部分 =
[3, 2, 1],和为3 + 2 + 1 = 6 - 因为递减部分的和更大,返回 1。
示例 2:
输入: nums = [2,4,5,2]
输出: 0
解释:
- 峰值元素是
nums[2] = 5 - 递增部分 =
[2, 4, 5],和为2 + 4 + 5 = 11 - 递减部分 =
[5, 2],和为5 + 2 = 7 - 因为递增部分的和更大,返回 0。
示例 3:
输入: nums = [1,2,4,3]
输出: -1
解释:
- 峰值元素是
nums[2] = 4 - 递增部分 =
[1, 2, 4],和为1 + 2 + 4 = 7 - 递减部分 =
[4, 3],和为4 + 3 = 7 - 因为两部分的和相等,返回 -1。
提示:
3 <= n == nums.length <= 1051 <= nums[i] <= 109nums是一个双调数组。