连续字数组的最大和

连续子数组的最大和

http://www.nowcoder.com/questionTerminal/459bd355da1549fa8a49e350bf3df484

把每种结果都要算出来进行比对,首先从数组第一个元素开始,算出以这个元素为起始点的最大连续元素和, 然后在算出以第二个元素为起始点的最大元素和,与上一次算出的进行比对,保留最大值,并返回。

public int findGreatestSumOfSubArray(int[] array) {
        if(array.length==0) return 0;
        else{
            //计算机能取到的int类型最小值
            int max=Integer.MIN_VALUE;
            //以第一个元素为起始点的最大连续向量和
            int tempMax=Max(array);
            //从第二个元素开始,依次与前一个元素算出的最大连续向量和进行比较
            for(int i=1;i<array.length;i++){
            if(max<tempMax){
                max=tempMax;
            }
            //将数组第一个元素删除,形成新的数组
            int[] newArray=new int[array.length-i];
            for(int j=0;j<newArray.length;j++) {
                newArray[j]=array[j+i];
            }
            tempMax=Max(newArray);
        }
            return max;
        }
    }

    private int Max(int[] array){
        int[] temp=new int[array.length];
        int sum=0;
        for(int i=0;i<array.length;i++){
            sum=sum+array[i];
            temp[i]=sum;
        }
        Arrays.sort(temp);
        //数组的最后一个元素是最大值
        int element=temp[temp.length-1];
        return element;
    }
全部评论

相关推荐

09-17 17:09
门头沟学院 Java
雨忄:有人给出过解法,拖晚点去,然后到时候再找其他理由商量,既增加他们的筛人成本,不一定会给你收回offer ,也能占位避免工贼
秋招的嫡长offer
点赞 评论 收藏
分享
评论
1
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务