您的位置:首页 > 其它

k数和

2015-10-12 22:39 176 查看
给定n个不同的正整数,整数k(k < = n)以及一个目标数字。    

在这n个数里面找出K个数,使得这K个数的和等于目标数字,求问有多少种方案?

样例

给出[1,2,3,4],k=2
target=5[1,4] and [2,3]2个符合要求的方案

class Solution {
public:
/**
* @param A: an integer array.
* @param k: a positive integer (k <= length(A))
* @param target: a integer
* @return an integer
*/
int kSum(vector<int> A, int k, int target) {
// wirte your code here
int n = A.size();
int buf[n+1][k+1][target+1];
for (int i = 0; i < n+1; i++)
{
for (int j = 0; j < k+1; j++)
{
for (int m = 0; m < target+1; m++)
{
if (j == 0 && m == 0)
{
buf[i][j][m] = 1;
}
else if (!(i == 0 || j == 0 || m == 0))
{
buf[i][j][m] = buf[i-1][j][m];
if (A[i-1] <= m)
{
buf[i][j][m] += buf[i-1][j-1][m-A[i-1]];
}
}
else
{
buf[i][j][m] = 0;
}
}
}
}

return buf
[k][target];
}
};
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: