劍指 offer 42(動態規劃)連續陣列的最大值

2021-10-21 21:21:33 字數 914 閱讀 8223

輸入乙個整型陣列,陣列中的乙個或連續多個整數組成乙個子陣列。求所有子陣列的和的最大值。

要求時間複雜度為o(n)。

示例1:

輸入: nums = [-2,1,-3,4,-1,2,1,-5,4]

輸出: 6

解釋: 連續子陣列 [4,-1,2,1] 的和最大,為 6。

1 <= arr.length <= 10^5

-100 <= arr[i] <= 100

class

solution

int[

] dp =

newint

[nums.length]

[nums.length]

;//初始化

for(

int i =

0;i < nums.length; i++

)int max = nums[0]

;for

(int i =

0; i < nums.length; i++

) max = math.

max(max, dp[i]

[i]);}

return max;

//動態規劃:dp[i] 表示第i個元素(包括i)之前的最大值,

int[

] dp =

newint

[nums.length]

; dp[0]

= nums[0]

;int res = nums[0]

;for

(int i =

1; i < nums.length; i++

)//這個解法和上面的解法比無法直到最大連續數字,但是可以直到和,且和會改變

return res;

}}

劍指offer42 和為S的連續正數序列

小明很喜歡數學,有一天他在做數學作業時,要求計算出9 16的和,他馬上就寫出了正確答案是100。但是他並不滿足於此,他在想究竟有多少種連續的正數序列的和為100 至少包括兩個數 沒多久,他就得到另一組連續正數和為100的序列 18,19,20,21,22。現在把問題交給你,你能不能也很快的找出所有和...

劍指offer42 連續子陣列的最大和

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

《劍指offer》 42 連續子陣列的最大和

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