2025-01-19:数组中的峰值。用go语言,在一个整数数组 nums 中,若某个元素大于其左右相邻的元素,则称该元素为“峰值”元素。
你会得到一个整数数组 nums 和一个二维数组 queries。需要处理两种操作:
1.queries[i] = [1, li, ri]:计算子数组 nums[li..ri] 中的峰值元素数量。
2.queries[i] = [2, indexi, vali]:将 nums[indexi] 的值更改为 vali。
最终,你需要返回一个数组 answer,其中依次包含了每一次第一种操作的结果。
请注意,子数组的第一个和最后一个元素不被视为峰值元素。
3 <= nums.length <= 100000。
1 <= nums[i] <= 100000。
1 <= queries.length <= 100000。
queries[i][0] == 1 或者 queries[i][0] == 2。
对于所有的 i ,都有:
queries[i][0] == 1 :0 <= queries[i][1] <= queries[i][2] <= nums.length - 1。
queries[i][0] == 2 :0 <= queries[i][1] <= nums.length - 1, 1 <= queries[i][2] <= 100000。
输入: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] 中的峰值元素。
相似问题