zoukankan      html  css  js  c++  java
  • 第3题:求子数组的最大和

    欢迎转载,转载请务必注明出处:http://blog.csdn.net/alading2009/article/details/44653245

    第3题:输入一个整形数组,数组里有正数也有负数。数组中连续的一个或多个正数组成一个子数组,每个子数组都有一个和。求所有子数组的和的最大值(只求和,不记录最大子数组)。
    要求:时间复杂度为O(n)

    从左往右一遍扫描。

    package test003;
    
    /**
     * Created by cq on 2015/3/26.
     * 第三题:输入一个整形数组,数组里有正数也有负数。数组中连续的一个或多个正数组成一个子数组,
     *        每个子数组都有一个和。求所有子数组的和的最大值。
     * 要求:时间复杂度为O(n)
     */
    public class SumOfMaxSubArr {
        public static int sumOfMaxSA(int[] arr){
            if (arr.length == 0){
                return -1;
            }
            int max = arr[0],sum = arr[0];
            for (int i=1;i < arr.length;i++){
                sum = (sum + arr[i] > 0) ? (sum + arr[i]) : 0;
                max = (sum > max) ? sum : max;
            }
            return max;
        }
        public static void main(String[] args){
            int[] arr = {1,-2,3,10,-4,7,2,-5};
            System.out.println("最大子数组的和为:"+SumOfMaxSubArr.sumOfMaxSA(arr));
        }
    }
    
  • 相关阅读:
    2013.11.18 流水
    return to blog!
    IOS实现毛玻璃效果的三种方式
    UI常用控件总结(三)
    UI常用控件总结(二)
    UI常用控件总结(一)
    UIView 常见属性
    OC语言BLOCK和协议
    OC语言类的深入和分类
    OC语言构造方法
  • 原文地址:https://www.cnblogs.com/read-the-spring-and-autumn-annals-in-night/p/12041993.html
Copyright © 2011-2022 走看看