zoukankan      html  css  js  c++  java
  • Maximum Subarray

    题目

    Find the contiguous subarray within an array (containing at least one number) which has the largest sum.

    For example, given the array [−2,1,−3,4,−1,2,1,−5,4],
    the contiguous subarray [4,−1,2,1] has the largest sum = 6.

    More practice:

    If you have figured out the O(n) solution, try coding another solution using the divide and conquer approach, which is more subtle.

    方法

    寻找和最大的子数组,时间O(n)。

        public int maxSubArray(int[] A) {
            if (A == null) {
                return 0;
            }
            int len = A.length;
            int max = A[0];
            int cur = 0;
            for (int i = 0; i < len; i++) {
                cur += A[i];
                if (max < cur) {
                    max = cur;
                }
                if (cur < 0) {
                    cur = 0;
                }
            }
            return max;
        }


查看全文
  • 相关阅读:
    hdu1150&&POJ1325 Machine Schedule---最小点覆盖
    hdu-1068&&POJ1466 Girls and Boys---最大独立集
    hdu-2680 Choose the best route---dijkstra+反向存图或者建立超级源点
    hdu-1317 XYZZY---Floyd判连通+bellman最短路
    hdu-1874 畅通工程续---模板题
    hdu-2112 HDU Today---dijkstra+标号
    hdu-2066 一个人的旅行---模板题
    hdu-3790 最短路径问题---dijkstra两重权值
    hdu-2544 最短路---模板题
    BZOJ3529: [Sdoi2014]数表
  • 原文地址:https://www.cnblogs.com/ldxsuanfa/p/10674845.html
  • Copyright © 2011-2022 走看看