最大子数组之和(N)
1 int maxSum(int *array, int n) 2 { 3 int rvsum = array[0]; 4 int newsum = 0; 5 6 int i = 0; 7 for(i = 0; i < n; i++) 8 { 9 if(newsum >= 0) 10 newsum += array[i]; 11 else 12 newsum = array[i]; 13 14 if(rvsum < newsum) 15 rvsum = newsum; 16 } 17 18 return rvsum; 19 }
1 //N^3 2 int MaxSum(int *array, int n) 3 { 4 int maxinum = -INF; 5 int sum = 0; 6 int i = 0, j = 0, k =0; 7 8 for(i = 0; i < n; i++) 9 { 10 for(j = i; j < n; j++) 11 { 12 for(k = i; k<= j; k++) 13 { 14 sum += array[k]; 15 } 16 17 if(sum > maxinum) 18 maxinum = sum; 19 20 sum = 0; 21 } 22 } 23 24 return maxinum; 25 }