Skip to content

Commit a3807ba

Browse files
committed
feat: 2552. Count Increasing Quadruplets, dp
1 parent dbf8919 commit a3807ba

File tree

1 file changed

+37
-0
lines changed

1 file changed

+37
-0
lines changed
Lines changed: 37 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,37 @@
1+
/**
2+
* @param {number[]} nums
3+
* @return {number}
4+
*/
5+
var countQuadruplets = function(nums) {
6+
const n = nums.length
7+
let ans = 0
8+
9+
const prev = Array(n+1).fill(0).map(() => Array(n+1).fill(0))
10+
const post = Array(n+1).fill(0).map(() => Array(n+1).fill(0))
11+
for (let i = 0; i < n; i++) {
12+
// 数的范围只能是 1~n
13+
for (let j = 1; j <= n; j++) {
14+
if (nums[i] < j) prev[i][j] = (i<=0 ? 0 : prev[i-1][j])+1
15+
else prev[i][j] = i<=0 ? 0 : prev[i-1][j]
16+
}
17+
let k = n-1-i
18+
for (let j = 1; j <= n; j++) {
19+
if (nums[k] > j) post[k][j] = post[k+1][j]+1
20+
else post[k][j] = post[k+1][j]
21+
// console.log(k, j, post[k][j])
22+
}
23+
}
24+
25+
for (let j = 0; j < n; j++) {
26+
for (let k = j+1; k < n; k++) {
27+
if (nums[k] < nums[j]) {
28+
let l = j-1<0 ? 0 : prev[j-1][nums[k]]
29+
let r = post[k+1][nums[j]]
30+
// post[3][5]
31+
// console.log(j, k, nums[j], nums[k], l, r)
32+
ans += l*r
33+
}
34+
}
35+
}
36+
return ans
37+
};

0 commit comments

Comments
 (0)