子陣列的最大累加和問題 python版本

2021-10-10 18:32:20 字數 1074 閱讀 9798

給定乙個陣列arr,返回子陣列的最大累加和

例如,arr = [1, -2, 3, 5, -2, 6, -1],所有子陣列中,[3, 5, -2, 6]可以累加出最大的和12,所以返回12.

[要求]

時間複雜度為o(n)o(n),空間複雜度為o(1)o(1)

示例1輸入

[1, -2, 3, 5, -2, 6, -1]

返回值12

解題思路:本題的難點在於連加後小於0如何處理,為了求最大和,連加小於0可以置0

#

# max sum of the subarray

# @param arr int整型一維陣列 the array

# @return int整型

#class solution:

def maxsumofsubarray(self , arr ):

# write code here

if not arr:

return 0

res = arr[0]

cur = arr[0]

for i in arr[1:]:

cur += i

if cur < 0:

cur = 0

else:

if cur > res:

res = cur

return res

這個是我寫的演算法,易懂,但效率差點,直接附上高效的演算法,不解釋

#

# max sum of the subarray

# @param arr int整型一維陣列 the array

# @return int整型

#class solution:

def maxsumofsubarray(self , arr ):

# write code here

num = 0

for i in arr:

if num + i >=0:

num +=i

else:

num = 0

return num

子陣列的最大累加和問題

題目 給定乙個陣列arr,返回子陣列中的最大累加和。例如,arr 1,2,3,5,2,6,1 其中子陣列 3,5,2,6 累加和最大為12,故返回12.要求 時間複雜度為o n 額外空間複雜度為o 1 public static void main string args int r maxson1...

子陣列的最大累加和問題

子陣列的最大累加和問題 給定乙個陣列arr,返回子陣列的最大累加和 例如,arr 1,2,3,5,2,6,1 所有子陣列中,3,5,2,6 可以累加出最大的和12,所以返回12.要求 時間複雜度為o n o n o n 空間複雜度為o 1 o 1 o 1 輸入描述 第一行乙個整數n。表示陣列長度 接...

子陣列的最大累加和問題

傳送門 給定乙個陣列arr,返回子陣列的最大累加和 例如,arr 1,2,3,5,2,6,1 所有子陣列中,3,5,2,6 可以累加出最大的和12,所以返回12.要求 時間複雜度為o n 空間複雜度為o 1 輸入 1,2,3,5,2,6,1 輸出 掃一遍所有數字,同時記錄當前的累加和ans,如果累加...