我正在学习递归。
我得到一个整数数组,我们将其标记为a []。 (让我们以数组为例-a [] = {3,4,5,2,7,6,5})。
我需要编写一个函数来查找此整数的子组,如果将它们求和,将得到最高的数字。
但是有一些限制:
我不能接受超过1次的相同整数。
在此数组中我不能接受2个整数,它们之间的差是2或3。(如果我接受5个整数,我就不能接受右派7个。)
#include <stdio.h>
#include <stdio.h>
#define MAX_SIZE 1000
int max_sum(int a[],int n);
int max(int a, int b);
int main()
{
int i, size_array, array[MAX_SIZE];
scanf("%d",&size_array);
for(i=0;i<size_array;i++)
scanf("%d",&array[i]);
printf("%d",max_sum(array,size_array));
return 0;
}
int max(int a, int b)
{
return a>b ? a : b;
}
int max_sum(int a[], int n)
{
I AM STUCK HERE!!
}
谢谢!
对于数组a [10] = {1,2,5,4,2,7,8,9,8,1},最高和为26。
对于数组a [2] = {1,2},最高和为3。
对于数组a [5] = {4,1,7,1,4},最高和为8。
对于数组a [7] = {3,4,5,2,7,6,5},最高和为18。