我们在一个类中有一个代码,如下所示:
int SubsetSum(int arr[], int idx, int n, int S)
{
if (S == 0)
return 1; // This is stopping condition #1.
if (S < 0 || n == 0)
return 0; // This is stopping condition #2.
 return SubsetSum(arr, idx + 1, n - 1, S - arr[idx])
|| SubsetSum(arr, idx + 1, n - 1, S);
}
如果数组可以分成两个相等和的子数组(即数组/2 的和),则此代码返回 1。我想扩展这个函数,以便它返回两个带有数字的数组。
对于它的输入1,2,2,3,0
应该返回: arr1: 2,2 arr2: 3,1
我怎样才能做到这一点?我不能使用循环,只能使用递归函数。