困难
数组 arr 中 大于 前面和后面相邻元素的元素被称为 峰值 元素。
给你一个整数数组 nums 和一个二维整数数组 queries 。
你需要处理以下两种类型的操作:
queries[i] = [1, li, ri],求出子数组nums[li..ri]中 峰值 元素的数目。queries[i] = [2, indexi, vali],将nums[indexi]变为vali。
请你返回一个数组 answer ,它依次包含每一个第一种操作的答案。
注意:
- 子数组中 第一个 和 最后一个 元素都 不是 峰值元素。
示例 1:
输入:nums = [3,1,4,2,5], queries = [[2,3,4],[1,0,4]]
输出:[0]
解释:
第一个操作:我们将 nums[3] 变为 4 ,nums 变为 [3,1,4,4,5] 。
第二个操作:[3,1,4,4,5] 中峰值元素的数目为 0 。
示例 2:
输入:nums = [4,1,4,2,1,5], queries = [[2,2,4],[1,0,2],[1,0,4]]
输出:[0,1]
解释:
第一个操作:nums[2] 变为 4 ,它已经是 4 了,所以保持不变。
第二个操作:[4,1,4] 中峰值元素的数目为 0 。
第三个操作:第二个 4 是 [4,1,4,2,1] 中的峰值元素。
提示:
3 <= nums.length <= 1051 <= nums[i] <= 1051 <= queries.length <= 105queries[i][0] == 1或者queries[i][0] == 2- 对于所有的
i,都有:queries[i][0] == 1:0 <= queries[i][1] <= queries[i][2] <= nums.length - 1queries[i][0] == 2:0 <= queries[i][1] <= nums.length - 1,1 <= queries[i][2] <= 105