码迷,mamicode.com
首页 > 其他好文 > 详细

[leetcode-629-K Inverse Pairs Array]

时间:2017-06-25 13:16:48      阅读:154      评论:0      收藏:0      [点我收藏+]

标签:note   动态规划   nbsp   should   win   define   tput   tar   class   

Given two integers n and k, find how many different arrays consist of numbers from 1 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 and a[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 = 0
Output: 1
Explanation: 
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 = 1
Output: 2
Explanation: 
The array [1,3,2] and [2,1,3] have exactly 1 inverse pair.

 

Note:

  1. The integer n is in the range [1, 1000] and k is in the range [0, 1000].

思路:

这种求最优解的个数,而不用返回解本身的感觉好多都用动态规划,这题也不例外。

public class Solution {
    int mo=1000000007;
    public int kInversePairs(int n, int k) {
        int[][] f=new int[1002][1002];
        f[1][0]=1;
        for (int i=2;i<=n;i++)
        {
            f[i][0]=1;
            for (int j=1;j<=k;j++) 
            {
                f[i][j]=(f[i][j-1]+f[i-1][j])%mo;
                if (j>=i) f[i][j]=(f[i][j]-f[i-1][j-i]+mo)%mo;
            }
        }
        return f[n][k];
    }
}

参考自:

https://leetcode.com/kakahiguain/

[leetcode-629-K Inverse Pairs Array]

标签:note   动态规划   nbsp   should   win   define   tput   tar   class   

原文地址:http://www.cnblogs.com/hellowooorld/p/7076540.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!