File tree Expand file tree Collapse file tree 1 file changed +27
-22
lines changed
src/main/java/com/fishercoder/solutions Expand file tree Collapse file tree 1 file changed +27
-22
lines changed Original file line number Diff line number Diff line change 25
25
*/
26
26
public class _629 {
27
27
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 ;
48
54
}
49
- dp [i ][j ] = (dp [i ][j ] + mod ) % mod ;
50
55
}
56
+ return (int ) dp [n ][k ];
51
57
}
52
- return (int ) dp [n ][k ];
53
58
}
54
59
}
You can’t perform that action at this time.
0 commit comments