zoukankan      html  css  js  c++  java
  • LeetCode-53-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.

    题意:就是求最大字数组和。

    思路:

      DP问题,O(n)内可破

      对于位置arr[0]~arr[i],最大字数组和

              arr[0]                  i==0

      maxSum[i]=  

              max{ maxSum[i-1]+arr[i] , arr[i] }     0<i<arr.length

      具体来说该题没必要采用maxSum数组,用一个变量记住最大字数组和即可。

    Java代码如下:

     1 public class Solution {
     2     public int maxSubArray(int[] nums) {
     3         int max = nums[0],maxEndingHere = nums[0];
     4         for (int i = 1; i < nums.length; i++) {
     5             maxEndingHere = Math.max(maxEndingHere+nums[i],nums[i]);
     6             max = Math.max(maxEndingHere,max);
     7         }
     8         return max;
     9     }
    10 }
  • 相关阅读:
    Next Permutation
    SpringMVC配置信息
    Servlet详解(转载)
    Length of Last Word
    Maximum Subarray**
    Divide Two Integers
    Generate Parentheses***
    http解码-2
    编码-1
    扫描工具对比
  • 原文地址:https://www.cnblogs.com/z941030/p/5608991.html
Copyright © 2011-2022 走看看