2025-03-23:单调数组对的数目Ⅱ。用go语言,给定一个长度为 n 的正整数数组 nums,我们需要找出所有的单调数组对。
单调数组对的定义是:两个非负整数数组 (arr1, arr2) 同时满足以下条件:
1.两个数组均为长度 n。
2.arr1 是单调非递减的,即 arr1[0] <= arr1[1] <= ... <= arr1[n - 1]。
3.arr2 是单调非递增的,即 arr2[0] >= arr2[1] >= ... >= arr2[n - 1]。
4.对于所有的 0 <= i <= n - 1,arr1[i] + arr2[i] 必须等于 nums[i]。
我们需要返回满足条件的单调数组对的总数。由于结果可能很大,因此需要将其对 1000000007 进行取余。
1 <= n == nums.length <= 2000。
1 <= nums[i] <= 1000。
输入:nums = [2,3,2]。
输出:4。
解释:
单调数组对包括:
([0, 1, 1], [2, 2, 1])
([0, 1, 2], [2, 2, 0])
([0, 2, 2], [2, 1, 0])
([1, 2, 2], [1, 1, 0])
相似问题