劍指offer面試題42. 連續子數組的最大和(動態規劃)

題目描述

輸入一個整型數組,數組裏有正數也有負數。數組中的一個或連續多個整數組成一個子數組。求所有子數組的和的最大值。
要求時間複雜度爲O(n)。

在這裏插入圖片描述

思路

詳見鏈接

代碼

class Solution:
	def maxSubArray(self, nums:List[int])->int:
		for i in range(1,len(nums)):
			nums[i] += max(nums[i-1],0)
		return max(nums)

複雜度

時間複雜度 O(N) : 線性遍歷數組 nums 即可獲得結果,使用 O(N)時間。
空間複雜度 O(1) : 使用常數大小的額外空間。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章