给你一个长度为 n 下标从 0 开始的整数数组 nums ,它包含 1 到 n 的所有数字,请你返回上升四元组的数目。
如果一个四元组 (i, j, k, l) 满足以下条件,我们称它是上升的:
- 0 <= i < j < k < l < n且
- nums[i] < nums[k] < nums[j] < nums[l]。
示例 1:
```txt
输入:nums = [1,3,2,4,5]
输出:2
解释:
- 当 i = 0 ,j = 1 ,k = 2 且 l = 3 时,有 nums[i] < nums[k] < nums[j] < nums[l] 。 
- 当 i = 0 ,j = 1 ,k = 2 且 l = 4 时,有 nums[i] < nums[k] < nums[j] < nums[l] 。 
没有其他的四元组,所以我们返回 2 。
```
示例 2:
```txt
输入:nums = [1,2,3,4]
输出:0
解释:只存在一个四元组 i = 0 ,j = 1 ,k = 2 ,l = 3 ,但是 nums[j] < nums[k] ,所以我们返回 0 。
```
提示:
- 4 <= nums.length <= 4000
- 1 <= nums[i] <= nums.length
- nums中所有数字 互不相同 ,- nums是一个排列。
统计上升四元组
题目
给你一个长度为 n 下标从 0 开始的整数数组 nums ,它包含 1 到 n 的所有数字,请你返回上升四元组的数目。
如果一个四元组 (i, j, k, l) 满足以下条件,我们称它是上升的:
-   0 <= i < j < k < l < n且
- nums[i] < nums[k] < nums[j] < nums[l]。
示例 1:
| 1 | 输入:nums = [1,3,2,4,5] | 
示例 2:
| 1 | 输入:nums = [1,2,3,4] | 
提示:
-   4 <= nums.length <= 4000
-   1 <= nums[i] <= nums.length
- nums中所有数字 互不相同 ,- nums是一个排列。
题解
方法一:
思路
没想到开这么大的数组
令l[i][j]为下标小于等于i且值小于等于j的个数, r[i][j]下标大于等于i且值大于等于j的个数。
显然如果j!=nums[i],那么l[i][j]相当于下标严格小于i且值严格小于j的个数,r[i][j]相当于下标严格大于i且值严格大于j的个数。
以numns[i]和nums[j]作为中间两个元素的四元组个数为l[i][nums[j]] * r[j][nums[i]]
答案为$\sum \limits_{i=0}^{n-1} \sum \limits_{j=i+1}^{n-1} l[i][nums[j]] * r[j][nums[i]]$
总时间复杂度$O(n^2)$
代码
| 1 | 
 |