错与对并不是绝对的

数组的最大子数组的和

要求:

    给定一个整数数组 nums ,找到一个具有最大和的连续子数组(子数组最少包含一个元素),返回其最大和。要求时间复杂度为O(n)。

思路:

    这是一道考察算法的题,对比每一个子数组的和,还有对时间复杂度的要求。

过程与结果:

    总的来讲花费的时间挺多的,可能因为,额,好吧,不是可能,是就是本来基础很差,所以实际动手的时候不太会,钻研了半天,最后还是从网上查找了查找解决方案,但是最后还是没能解决时间复杂度O(n)的问题,只做到了时间复杂度O(n²)。

 

package com;

public class zihe {
public static int sumN2(int [] array){
int sum=0,maxSum=Integer.MIN_VALUE;
int n=array.length;
int count=0;
for(int i=0;i<n;i++){
sum=0;
for(int j=i;j<n;j++){
sum+=array[j];
if(sum>maxSum){
maxSum=sum;
}
count++;
} }

System.out.println("length="+n+"||count="+count);
return maxSum;
}


public static void main(String[] args) {
// TODO Auto-generated method stub
int [] array={-5,-2,-3,-5,-3,-2};
int sum=zihe.sumN2(array);
System.out.println("最大子序列和="+sum);

}

}

 

 

posted on 2019-03-10 20:28  错与对并不是绝对的  阅读(100)  评论(0编辑  收藏  举报

导航