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.

    click to show more practice.

    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.

    more practice是搞笑的。
    还有更简单的方法,懒得改了。事实证明看书太多也不好。
    class Solution {
    public:
        int maxSubArray(int A[], int n) {
            vector<int> sum;
            if(n == 0)return 0;
            int maxsum =A[0];
            sum.push_back(A[0]);
            for(int i = 1 ; i < n ; i++)
            {
                int temp = sum[i-1]+A[i];
                if(temp > maxsum)maxsum = temp;
                sum.push_back(temp);
            }
    
            int min = 0;
            for(int i = 1 ; i < n;i++)
            {
                if(sum[i] - sum[min] > maxsum)
                maxsum = sum[i] - sum[min];
                if(sum[i] < sum[min])min = i;
            }
            
            
            return maxsum;
        }
    };
    

      

  • 相关阅读:
    Vue.js
    Vue.js
    Vue.js
    Vue.js
    webpack(1)
    webpack(2)
    babel-loader7和babel8版本的问题
    [JZOJ4274] 终章-剑之魂
    [JZOJ427] 圣章-精灵使的魔法语
    BZOJ题表(红色表示已完成)
  • 原文地址:https://www.cnblogs.com/pengyu2003/p/3595264.html
Copyright © 2011-2022 走看看