数组
发表时间:2021.3.3
题目:输入一个整形数组,数组里有正数也有负数。数组中连续的一个或多个整数组成一个子数组,每个子数组都有一个和。求所有子数组的和的最大值,要求时间复杂度为O(n)。
源代码:
public class Item {
public static void main(String args[]) {
int array[] = {1, 6, 10, -4,8,3, -5};
System.out.println(findMax(array));
}
public static int findMax(int array[]){
if (array.length == 0) {
return 0;
}
int max = array[0];
int sum = 0;
for(int i=0; i<array.length; i++){
if(sum >= 0) {
sum += array[i];
}
else{
sum = array[i];
}
if(sum > max){
max = sum;
}
}
return max;
}
}
浙公网安备 33010602011771号