public class MaxSubArray {
public static void main(String[] args) {
int[] arr = {-2,1,-3,4,-1,2,1,-5,4};
int[] arr1={-1,2,3,50,-16,1,20,-12};
maxarr(arr1);
}
public static void maxarr(int[]arr){
int maxsum=0;
int sum = 0;
for(int i=0;i<arr.length;i++){
sum+=arr[i];
if(sum>maxsum){
maxsum = sum;}
if (sum<0) {
sum = 0;
}
}
System.out.println(maxsum);
}
}
时间复杂度:O(N)
本文介绍了一个用于寻找一维数组中具有最大和的连续子数组的算法实现。通过遍历数组并动态调整累积和,该算法能高效地找到最大子数组的和,时间复杂度为O(N)。
589

被折叠的 条评论
为什么被折叠?



