-9
我們考慮以下情況的數量: 假設你有一個整數k和n爲整數。現在我們需要編寫一個函數來確定這些數據是否可以將k的數量作爲數字子集的總和。它必須以遞歸方式運行。 例如輸入:總結到指定值
IN:
k: 12
14 25 36 8 78 15 26
OUT:
NO
k: 118
14 25 36 8 78 15 26 1 2 7
YES, 78+14+26
我們考慮以下情況的數量: 假設你有一個整數k和n爲整數。現在我們需要編寫一個函數來確定這些數據是否可以將k的數量作爲數字子集的總和。它必須以遞歸方式運行。 例如輸入:總結到指定值
IN:
k: 12
14 25 36 8 78 15 26
OUT:
NO
k: 118
14 25 36 8 78 15 26 1 2 7
YES, 78+14+26
如果你可以複製/粘貼您的任務/面試問題,沒有任何背景,那麼我可以做一個Web解決方案一樣...
/* Returns true if the there is a subarray of arr[] with sum equal to 'sum'
otherwise returns false. Also, prints the result */
int subArraySum(int arr[], int n, int sum)
{
int curr_sum, i, j;
// Pick a starting point
for (i = 0; i < n; i++)
{
curr_sum = arr[i];
// try all subarrays starting with 'i'
for (j = i+1; j <= n; j++)
{
if (curr_sum == sum)
{
printf ("Sum found between indexes %d and %d", i, j-1);
return 1;
}
if (curr_sum > sum || j == n)
break;
curr_sum = curr_sum + arr[j];
}
}
printf("No subarray found");
return 0;
}
來源:http://www.geeksforgeeks.org/find-subarray-with-given-sum/
PS:我沒有足夠的積分發表評論。
-1是什麼問題? (無論如何,谷歌分區) –
你偶然發現的東西叫做[揹包問題](http://en.wikipedia.org/wiki/Knapsack_problem)。 – fredoverflow
如果您發佈了您嘗試過的代碼,我們可能會提供幫助! – Luigi