python力扣刷題記錄——面試題 16.17. 連續數列(待補充)
阿新 • • 發佈:2021-01-13
題目:
給定一個整數陣列,找出總和最大的連續數列,並返回總和。
方法一:
執行用時: 32 ms
記憶體消耗: 15.5 MB
野生做法,遍歷陣列,求和,一邊求和一邊與這個數對比,如果這個數大於求的和,就從這個數往下計算,拋棄之前算的和。有點像動態規劃的揹包問題。
class Solution:
def maxSubArray(self, nums: List[int]) -> int:
sum = 0
sum_list = []
for i in range(len(nums) ):
sum += nums[i]
if nums[i] > sum:
sum = nums[i]
sum_list.append(sum)
return max(sum_list)
方法二:
暴力法。當然,時間超出了限制
class Solution:
def maxSubArray(self, nums: List[int]) -> int:
result = nums[0]
for i in range(len(nums) ):
sum = 0
j = i
for j in range(j, len(nums)):
sum += nums[j]
result = sum if sum > result else result
return result
待補充:
方法三:
動態規劃法:
方法四:
分治法: