Leetcode刷題5 最大子序和

2022-05-16 22:57:44 字數 761 閱讀 7664

動態規劃(英語:dynamic programming,簡稱 dp)是一種在數學、管理科學、電腦科學、經濟學和生物資訊學中使用的,通過把原問題分解為相對簡單的子問題的方式求解複雜問題的方法。

動態規劃常常適用於有重疊子問題和最優子結構性質的問題,動態規劃方法所耗時間往往遠少於樸素解法。

動態規劃背後的基本思想非常簡單。大致上,若要解乙個給定問題,我們需要解其不同部分(即子問題),再根據子問題的解以得出原問題的解。動態規劃往往用於優化遞迴問題,例如斐波那契數列,如果運用遞迴的方式來求解會重複計算很多相同的子問題,利用動態規劃的思想可以減少計算量。

通常許多子問題非常相似,為此動態規劃法試圖僅僅解決每個子問題一次,具有天然剪枝的功能,從而減少計算量:一旦某個給定子問題的解已經算出,則將其記憶化儲存,以便下次需要同乙個子問題解之時直接查表。這種做法在重複子問題的數目關於輸入的規模呈指數增長時特別有用。

(1)看到這個題目首先想到的是一層一層計算,第一層找到最大的值對應的索引;第二層找兩兩陣列之和的最大索引,如果都小於0則退出迴圈;第三層找連續三個陣列之和,如果都小於0等退出迴圈,依次類推

(2)採用動態規劃的方法

初始化sum=0,ans=num[0],不斷向右累加,如果sum大於等於0,則記錄,否則sum置為num[i]

LeetCode刷題之路 最大子序和

leetcode說話題之路 最大子序和 題目 給定乙個整數陣列nums,找到乙個具有最大和的連續子陣列 子陣列最少包含乙個元素 返回其最大和 輸入 2,1,3,4,1,2,1,5,4 輸出 6 解釋 連續子陣列 4,1,2,1 的和最大,為 6。注 本題目是乙個非常經典的題目,可以用多種方法解決,暴...

leetcode刷題(31) 53 最大子序和

給定乙個整數陣列 nums 找到乙個具有最大和的連續子陣列 子陣列最少包含乙個元素 返回其最大和。示例 輸入 2,1,3,4,1,2,1,5,4 輸出 6 解釋 連續子陣列 4,1,2,1 的和最大,為 6。高階 如果你已經實現複雜度為 o n 的解法,嘗試使用更為精妙的分治法求解。思路 第一聯想到...

LeetCode刷題之旅(簡單 13) 最大子序和

2019年6月8日 目錄 題目 解決方法1 暴力累計遍曆法 思路 效能結果 解決方法2 動態規劃 思路 效能結果 解決方法3 分治法 類似二分法 思路 效能結果 解決方法4 其他的解法 利用中間陣列過渡比較 思路 效能結果 小結 主要是利用逐步求解,以連續陣列結束位置為每一步的解,sum其實就是記錄...