给你一个整数数组 nums
,包含 互不相同 的元素。
nums
的一个子数组 nums[l...r]
被称为 碗(bowl),如果它满足以下条件:
r - l + 1 >= 3
。min(nums[l], nums[r]) > max(nums[l + 1], ..., nums[r - 1])
。返回 nums
中 碗 子数组的数量。
示例 1:
输入: nums = [2,5,3,1,4]
输出: 2
解释:
碗子数组是 [3, 1, 4]
和 [5, 3, 1, 4]
。
[3, 1, 4]
是一个碗,因为 min(3, 4) = 3 > max(1) = 1
。[5, 3, 1, 4]
是一个碗,因为 min(5, 4) = 4 > max(3, 1) = 3
。示例 2:
输入: nums = [5,1,2,3,4]
输出: 3
解释:
碗子数组是 [5, 1, 2]
、[5, 1, 2, 3]
和 [5, 1, 2, 3, 4]
。
示例 3:
输入: nums = [1000000000,999999999,999999998]
输出: 0
解释:
没有子数组是碗。
提示:
3 <= nums.length <= 105
1 <= nums[i] <= 109
nums
由不同的元素组成。