feat(work): add Maximum Subarray solution (LeetCode 53)

This commit is contained in:
Prad Nukala committed 2026-09-29 13:22:10 -04:00
1 parent 32dadf5928
commit 4c297b4524
1 file changed
+58
@@ -0,0 +1,58 @@
"""
53. Maximum Subarray
Difficulty: Medium
https://leetcode.com/problems/maximum-subarray/
──────────────────────────────────────────────────
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 <= 10^5
• -10^4 <= nums[i] <= 10^4
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.
"""
class Solution:
def maxSubArray(self, nums: list[int]) -> int:
best, total = nums[0], nums[0]
for i in range(1, len(nums)):
if total < 0:
total = nums[i]
else:
total = total + nums[i]
best = max(best, total)
return best