53. 最大子序和(python3)
題目:https://leetcode-cn.com/problems/maximum-subarray/
給定一個整數陣列 nums ,找到一個具有最大和的連續子陣列(子陣列最少包含一個元素),返回其最大和。
示例:
輸入: [-2,1,-3,4,-1,2,1,-5,4]
輸出: 6
解釋: 連續子陣列 [4,-1,2,1] 的和最大,為 6。
進階:
如果你已經實現複雜度為 O(n) 的解法,嘗試使用更為精妙的分治法求解。
解題思路:
這道題只需要記錄最大和,不需要記錄移動軌跡,所以用cur記錄區域性最優,res記錄全域性最優即可
程式碼:
class Solution:
def maxSubArray(self, nums: List[int]) -> int:
res = nums[0]
cur = 0
for i in nums:
cur = max(cur + i, i)
res = max(cur, res)
return res
測試:
if __name__ == "__main__":
nums = [-2,1,-3,4,-1,2,1,-5,4]
res = Solution().maxSubArray(nums)
print(res)
相關文章
- 53. 最大子陣列和陣列
- leetcode_最大子序和LeetCode
- 【刷演算法】LeetCode.53-最大子序和演算法LeetCode
- 程式碼隨想錄演算法訓練營第50天 | 1143.最長公共子序列 、1035.不相交的線 、53. 最大子序和、392.判斷子序列演算法
- 程式碼隨想錄演算法訓練營day44| 1143.最長公共子序列 1035.不相交的線 53. 最大子序和 392.判斷子序列演算法
- 程式碼隨想錄演算法訓練營第五十三天| ● 1143.最長公共子序列 ● 1035.不相交的線 ● 53. 最大子序和 動態規劃演算法動態規劃
- 程式碼隨想錄演算法訓練營第31天 | 貪心演算法 455.分發餅乾 、376. 擺動序列、53. 最大子序和演算法
- 順序表應用7:最大子段和之分治遞迴法遞迴
- 【LeetCode】【分治法】連續數列(最大子序和)思路解析和程式碼LeetCode
- 最大子段和 | 最大子矩陣 | 最大M子段和矩陣
- 順序表應用8:最大子段和之動態規劃法動態規劃
- 最大子矩陣和矩陣
- 動態規劃求解最大子段和 (兩種寫法+還原最優解)動態規劃
- [-演算法篇-] 最大子序列和演算法
- 迴圈陣列最大子段和陣列
- 最大連續子陣列和(最大子段和)陣列
- poj1050 最大子矩陣和矩陣
- 最大子陣列和問題的解陣列
- 【力扣】最大子陣列和(貪心)力扣陣列
- [Python手撕]最大子陣列和Python陣列
- 程式碼隨想錄演算法訓練營第三十一天 | 455.分發餅乾 376.擺動序列 53.最大子陣列和演算法陣列
- POJ 1050-To the Max(最大子矩陣和)矩陣
- LeetCode53. 最大子陣列和LeetCode陣列
- Python3 執行緒優先順序佇列( Queue)Python執行緒佇列
- Python3程式設計實戰Tetris機器人(序)Python程式設計機器人
- 求二維陣列中最大子陣列的和陣列
- 遞迴和迭代實現二叉樹先序、中序、後序和層序遍歷遞迴二叉樹
- Python3 * 和 ** 運算子Python
- python3 筆記20.類的呼叫和多重繼承(多重繼承MRO方法解析順序)Python筆記繼承
- 51nod 1254 最大子段和 V2
- Mac上最簡單配置python3開發環境MacPython開發環境
- 二叉樹先知道後序和中序,求先序二叉樹
- 動態規劃---例題3.最大子段和問題動態規劃
- openjudge1768 最大子矩陣[二維字首和or遞推|DP]矩陣
- 動態規劃-最大子矩陣和(ZOJ 1074 TO THE MAX )動態規劃矩陣
- 【刷題筆記】LeetCode-53 最大子陣列和筆記LeetCode陣列
- Python3中_和__的用途和區別Python
- modbus和位元組序