劍指offer 連續陣列的最大值

2021-08-28 04:28:19 字數 698 閱讀 4558

hz偶爾會拿些專業問題來忽悠那些非計算機專業的同學。今天測試組開完會後,他又發話了:在古老的一維模式識別中,常常需要計算連續子向量的最大和,當向量全為正數的時候,問題很好解決。但是,如果向量中包含負數,是否應該包含某個負數,並期望旁邊的正數會彌補它呢?例如:,連續子向量的最大和為8(從第0個開始,到第3個為止)。給乙個陣列,返回它的最大連續子串行的和,你會不會被他忽悠住?(子向量的長度至少是1)

其實本問題沒有題目描述中的那麼複雜,首先負數加負數肯定不符合條件,會越加越小。其次只要從頭加到尾,每加一次都更新最大值,當加到為負數了就把之前的結果扔掉,因為負數加正數會讓結果變小,負數加負數會更小,負數對最大值沒有影響。

# -*- coding:utf-8 -*-

import sys

class solution:

def findgreatestsumofsubarray(self, array):

# write code here

if array==:

return

ans=array[0]

tmp=array[0]

i=1while i0:

tmp+=array[i]

else:

tmp=array[i]

ans=max(ans,tmp)

i+=1

return ans

劍指offer 禮物的最大值

在乙個m n的棋盤的每一格都放有乙個禮物,每個禮物都有一定的價值 價值大於0 你可以從棋盤的左上角開始拿格仔裡的禮物,並每次向左或者向下移動一格直到到達棋盤的右下角。給定乙個棋盤及其上面的禮物,請計算你最多能拿到多少價值的禮物?動態規劃。對於每個格仔 第0行 第0列除外 它可能是從正上方的格仔過來能...

佇列的最大值 劍指Offer

題目描述 定義乙個佇列並實現函式 max value 得到佇列裡的最大值,要求函式max value push back 和 pop front 的均攤時間複雜度都是o 1 若隊列為空,pop front 和 max value 需要返回 1 題解 我對於這道題,剛開始看的稍微有點懵,後來才知道是描...

劍指Offer 佇列的最大值

請定義乙個佇列並實現函式 max value 得到佇列裡的最大值,要求函式max value push back 和 pop front 的均攤時間複雜度都是o 1 若隊列為空,pop front 和 max value 需要返回 1 示例 1 輸入 maxqueue push back push ...