• Leetcode-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.

    Analysis:

    We define the state d[i] as the the largest sum we can get for subarrays the end at i. We then have the formula:

    if d[i-1]<0, then we will choose to just select A[i] at i, d[i]=A[i]; otherwise d[i]=A[i]+d[i-1];

    Solution:

     1 public class Solution {
     2     public int maxSubArray(int[] A) {
     3         int len = A.length;
     4         if (len==0) return 0;
     5         int[] d = new int[len];
     6         d[0] = A[0];
     7         int max = d[0];
     8         for (int i=1;i<len;i++){
     9             if (d[i-1]<0)
    10                 d[i]=A[i];
    11             else 
    12                 d[i]=A[i]+d[i-1];
    13             if (d[i]>max) max = d[i];
    14         }
    15 
    16         return max;
    17     }
    18 }
  • 相关阅读:
    eclipsesvn
    js邮箱和正则表达式
    jsreplace
    JQuery与Json转换
    thinkPHP时间戳格式化
    JS绝对定位到右下角
    chrome快捷键
    js配置示例
    JQuery class选择器
    JS调试技巧
  • 原文地址:https://www.cnblogs.com/lishiblog/p/4125522.html
Copyright © 2020-2023  润新知