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;
        }


查看全文
  • 相关阅读:
    【递归】拆分自然数
    HDOJ3068最长回文
    博弈论——尼姆博奕
    vijos P1047最小公倍数
    Eular质数筛法-hiho一下 第九十三周
    hdoj-5652 India and China Origins二分+bfs
    hdoj-1166排兵布阵 简单的树状数组
    hdoj-5641 king's phone
    hdoj-1548简单的bfs题目
    命令中"|"的意义
  • 原文地址:https://www.cnblogs.com/ldxsuanfa/p/10674845.html
  • Copyright © 2011-2022 走看看