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

    连续子数组的最大和

    C++(9ms):

     1 class Solution {
     2 public:
     3     int maxSubArray(vector<int>& nums) {
     4         int len = nums.size() ;
     5         if (len < 1)
     6             return 0 ;
     7         int sum = 0 ;
     8         int Max = nums[0] ;
     9         for (int i = 0 ; i < len ; i++){
    10             if (sum < 0)
    11                 sum = nums[i] ;
    12             else
    13                 sum += nums[i] ;
    14             if (sum > Max)
    15                 Max = sum ;
    16         }
    17         return Max ;
    18     }
    19 };

    java(15ms):

     1 class Solution {
     2     public int maxSubArray(int[] nums) {
     3         if (nums.length < 1)
     4             return 0 ;
     5         int Max = nums[0] ;
     6         int sum = 0 ;
     7         for(int i = 0 ; i < nums.length ; i++){
     8             if (sum < 0){
     9                 sum = nums[i] ;
    10             }else{
    11                 sum += nums[i] ;
    12             }
    13             if (sum > Max)
    14                 Max = sum ;
    15         }
    16         return Max ;
    17     }
    18 }
  • 相关阅读:
    chess「dp」
    e[树上主席树]
    d[贪心]
    神盐皇
    LA 8043. ACM-ICPC World Finals 2017 E. Need for Speed
    八数码问题
    UVa 679. Dropping Balls
    关于时间复杂度
    欧拉序列 (Euler Tour)
    莫队算法
  • 原文地址:https://www.cnblogs.com/mengchunchen/p/7561522.html
Copyright © 2020-2023  润新知