题目1:有一个int型数组Num,里面存放着若干的正数和负数,请你设计一个算法,在数组中截取一段Num[start]--Num[end],使得这一段的整数之和最大,并返回最大值max。
/**************************************************/
/*有一个int型数组A[],里面存放着若干的正数和负数,请你设计一个算法,
在数组中截取一段A[start]--A[end],使得这一段的整数之和最大,
并返回最大值max。
*/
/**************************************************/
#include <stdio.h>
/*计算数组A中在start和end下标之间的整数的和*/
int sum(int A[], int start, int end) {
int sum = 0;
int i;
for (i = start; i <= end; i++ ) {
sum += A[i];
}
return sum;
}
/*求数组A的最大子数组,并返回其最大子数组的最大值,数组A的长度是N。*/
/*用的暴力求解法,时间复杂度是n^2.依次计算A[i...j]的和,i=0...N-1, j=i...N-1.*/
int findMaxSubArray(int A[], int N) {
int max = A[0], s;
int i, j;
for (i = 0; i < N; i++) {
if