ZhangZhihui's Blog  

Given an integer array nums, find the  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

 

ChatGPT's Solution:

class Solution:
    def maxSubArray(self, nums: List[int]) -> int:
        max_sum = curr_sum = nums[0]

        for num in nums[1:]:
            curr_sum = max(num, curr_sum + num)
            max_sum = max(max_sum, curr_sum)
        
        return max_sum

 

 

Explanation:

  1. Initialize max_sum and curr_sum with the first element.

  2. Iterate through the array, updating curr_sum to be the maximum of the current number or the sum including it.

  3. Update max_sum whenever curr_sum exceeds it.

  4. Return max_sum, which stores the maximum subarray sum.

This runs in O(N) time complexity.

 

posted on 2025-04-02 16:21  ZhangZhihuiAAA  阅读(15)  评论(0)    收藏  举报