leetcode 629. K Inverse Pairs Array
来源:互联网 发布:c语言闰年流程图 编辑:程序博客网 时间:2024/06/05 06:41
629. K Inverse Pairs Array
- User Accepted: 81
- User Tried: 363
- Total Accepted: 83
- Total Submissions: 1074
- Difficulty: Medium
Given two integers n
and k
, find how many different arrays consist of numbers from1
to n
such that there are exactly k
inverse pairs.
We define an inverse pair as following:For ith
and jth
element in the array, if i
< j
anda[i]
> a[j]
then it's an inverse pair; Otherwise, it's not.
Since the answer may very large, the answer should be modulo 109 + 7.
Example 1:
Input: n = 3, k = 0Output: 1Explanation: Only the array [1,2,3] which consists of numbers from 1 to 3 has exactly 0 inverse pair.
Example 2:
Input: n = 3, k = 1Output: 2Explanation: The array [1,3,2] and [2,1,3] have exactly 1 inverse pair.
Note:
- The integer
n
is in the range [1, 1000] andk
is in the range [0, 1000].
思路不难想,dp[i][j]表示前i个数字构成j个逆序对的方法数。最朴素的想法是三重循环做,但是可以优化掉最内层对i-1的那层循环。
问题是对边界的处理真的烦,之前的codeM也是,很多题的思路都是对的,但就是边界的问题或者是写法不好导致题目过不去,总是差那么一点。。。真的伤心。。。
public class Solution { public int kInversePairs(int n, int k) { long[][] dp = new long[n+1][k+1]; for(int i=0; i<=n; i++) dp[i][0] = 1; for(int i=1; i<=n; i++) for(int j=1; j<=k; j++) { dp[i][j] = dp[i][j-1]+dp[i-1][j]; if(j-i >= 0) dp[i][j] -= dp[i-1][j-i]; dp[i][j] += 1000000007; dp[i][j] %= 1000000007; } return (int) dp[n][k]; } }
阅读全文
0 0
- 【LeetCode】629. K Inverse Pairs Array
- leetcode 629. K Inverse Pairs Array
- [leetcode]629. K Inverse Pairs Array
- leetcode:K inverse pairs array
- K Inverse Pairs Array (leetcode)
- Leetcode | K Inverse Pairs Array
- 629. K Inverse Pairs Array
- 629. K Inverse Pairs Array
- 629. K Inverse Pairs Array
- 629. K Inverse Pairs Array
- 629. K Inverse Pairs Array
- leetcode 629 K Inverse Pairs Array
- K Inverse Pairs Array
- K Inverse Pairs Array
- 629. K Inverse Pairs Array 自制答案
- leetcode 629. K Inverse Pairs Array K个逆序对 + 动态规划DP
- 第十九周:( LeetCode629) K Inverse Pairs Array(c++)
- 629. K Inverse Pairs【Hard】 动态规划
- Maven 本地仓库明明有jar包,pom文件还是报错解决办法
- 卷积神经网络caffe
- Python模块
- android.mk编译静态.jar
- ES6“箭头”用法总结
- leetcode 629. K Inverse Pairs Array
- http.sys远程代码注入漏洞
- 将页面input中的value值打印出来
- 【问题处理】Unable to cast object of type 'System.DBNull' to type 'System.String'.
- leetcode 64. Minimum Path Sum
- OC之快速算法
- 关于用jquery 动态增加、删除表格的行,列操作。
- 数据库中的锁机制和封锁协议
- es6中的解构赋值详解