题目:原题链接(简单)
标签:数组、动态规划
解法 | 时间复杂度 | 空间复杂度 | 执行用时 |
---|---|---|---|
Ans 1 (Python) | O ( N ) O(N) O(N) | O ( 1 ) O(1) O(1) | 144ms (5.67%) |
Ans 2 (Python) | O ( N ) O(N) O(N) | O ( 1 ) O(1) O(1) | 60ms (96.62%) |
Ans 3 (Python) |
解法一:
class Solution:
def maxSubArray(self, nums: List[int]) -> int:
ans = float("-inf")
prefix = 0
min_prefix = 0
for n in nums:
prefix += n
if n > 0:
ans = max(ans, prefix - min_prefix)
else:
min_prefix = min(min_prefix, prefix)
ans = max(ans, n)
return ans
解法二:
class Solution:
def maxSubArray(self, nums: List[int]) -> int:
ans = -100000009
prefix = 0
for n in nums:
prefix += n
if prefix > ans:
ans = prefix
if prefix < 0:
prefix = 0
return ans