LeetCode Solutions
53. Maximum Subarray
Time: $O(n)$ Space: $O(1)$
class Solution {
public:
int maxSubArray(vector<int>& nums) {
int ans = INT_MIN;
int sum = 0;
for (const int num : nums) {
sum += num;
ans = max(ans, sum);
sum = max(sum, 0);
}
return ans;
}
};
class Solution {
public int maxSubArray(int[] nums) {
int ans = Integer.MIN_VALUE;
int sum = 0;
for (final int num : nums) {
sum += num;
ans = Math.max(ans, sum);
sum = Math.max(sum, 0);
}
return ans;
}
}
class Solution:
def maxSubArray(self, nums: List[int]) -> int:
ans = -math.inf
summ = 0
for num in nums:
summ += num
ans = max(ans, summ)
summ = max(summ, 0)
return ans