Skip to content

Commit e577f94

Browse files
refactor 629
1 parent 6a4b7c1 commit e577f94

File tree

1 file changed

+27
-22
lines changed
  • src/main/java/com/fishercoder/solutions

1 file changed

+27
-22
lines changed

src/main/java/com/fishercoder/solutions/_629.java

Lines changed: 27 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -25,30 +25,35 @@
2525
*/
2626
public class _629 {
2727

28-
/**reference: https://leetcode.com/articles/k-inverse-pairs-array/#approach-5-another-optimized-dynamic-programming-approachaccepted
29-
* and
30-
* https://discuss.leetcode.com/topic/93815/java-dp-o-nk-solution*/
31-
public int kInversePairs(int n, int k) {
32-
int mod = 1000000007;
33-
if (k > n * (n - 1) / 2 || k < 0) {
34-
return 0;
35-
}
36-
if (k == 0 || k == n * (n - 1) / 2) {
37-
return 1;
38-
}
39-
long[][] dp = new long[n + 1][k + 1];
40-
dp[2][0] = 1;
41-
dp[2][1] = 1;
42-
for (int i = 3; i <= n; i++) {
43-
dp[i][0] = 1;
44-
for (int j = 1; j <= Math.min(k, i * (i - 1) / 2); j++) {
45-
dp[i][j] = dp[i][j - 1] + dp[i - 1][j];
46-
if (j >= i) {
47-
dp[i][j] -= dp[i - 1][j - i];
28+
public static class Solution1 {
29+
30+
/**
31+
* reference: https://leetcode.com/articles/k-inverse-pairs-array/#approach-5-another-optimized-dynamic-programming-approachaccepted
32+
* and
33+
* https://discuss.leetcode.com/topic/93815/java-dp-o-nk-solution
34+
*/
35+
public int kInversePairs(int n, int k) {
36+
int mod = 1000000007;
37+
if (k > n * (n - 1) / 2 || k < 0) {
38+
return 0;
39+
}
40+
if (k == 0 || k == n * (n - 1) / 2) {
41+
return 1;
42+
}
43+
long[][] dp = new long[n + 1][k + 1];
44+
dp[2][0] = 1;
45+
dp[2][1] = 1;
46+
for (int i = 3; i <= n; i++) {
47+
dp[i][0] = 1;
48+
for (int j = 1; j <= Math.min(k, i * (i - 1) / 2); j++) {
49+
dp[i][j] = dp[i][j - 1] + dp[i - 1][j];
50+
if (j >= i) {
51+
dp[i][j] -= dp[i - 1][j - i];
52+
}
53+
dp[i][j] = (dp[i][j] + mod) % mod;
4854
}
49-
dp[i][j] = (dp[i][j] + mod) % mod;
5055
}
56+
return (int) dp[n][k];
5157
}
52-
return (int) dp[n][k];
5358
}
5459
}

0 commit comments

Comments
 (0)