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 ...