給定乙個陣列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,如果累加...