Skip to content

Latest commit

 

History

History

053 - Maximum Subarray

Folders and files

NameName
Last commit message
Last commit date

parent directory

..
 
 
 
 

53. Maximum Subarray share

Problem Statement

Given an integer array nums, find the subarray with the largest sum, and return its sum.

 

Example 1:

Input: nums = [-2,1,-3,4,-1,2,1,-5,4]
Output: 6
Explanation: The subarray [4,-1,2,1] has the largest sum 6.

Example 2:

Input: nums = [1]
Output: 1
Explanation: The subarray [1] has the largest sum 1.

Example 3:

Input: nums = [5,4,-1,7,8]
Output: 23
Explanation: The subarray [5,4,-1,7,8] has the largest sum 23.

 

Constraints:

  • 1 <= nums.length <= 105
  • -104 <= nums[i] <= 104

 

Follow up: If you have figured out the O(n) solution, try coding another solution using the divide and conquer approach, which is more subtle.

Solutions

package main

import "math"

func maxSubArray(nums []int) int {
	currSum, maxSum := 0, math.MinInt

	for _, num := range nums {
		currSum += num
		maxSum = int(math.Max(float64(maxSum), float64(currSum)))
		if currSum < 0 {
			currSum = 0
		}
	}

	return maxSum
}