LeetCode 53. 最大子序和(动态规划)
生活随笔
收集整理的這篇文章主要介紹了
LeetCode 53. 最大子序和(动态规划)
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
文章目錄
- 1. 題目描述
- 2. 解題
- 2.1 暴力求解
- 2.2 動態(tài)規(guī)劃
1. 題目描述
題目鏈接:https://leetcode-cn.com/problems/maximum-subarray/
《劍指Offer》同題:面試題42. 連續(xù)子數(shù)組的最大和
給定一個整數(shù)數(shù)組 nums ,找到一個具有最大和的連續(xù)子數(shù)組(子數(shù)組最少包含一個元素),返回其最大和。
輸入: [-2,1,-3,4,-1,2,1,-5,4], 輸出: 6 解釋: 連續(xù)子數(shù)組 [4,-1,2,1] 的和最大,為 6。進階:
如果你已經(jīng)實現(xiàn)復雜度為 O(n) 的解法,嘗試使用更為精妙的分治法求解。
2. 解題
類似題目:程序員面試金典 - 面試題 17.24. 最大子矩陣(轉(zhuǎn)成一維最大子序和 DP)
2.1 暴力求解
雙重循環(huán)O(n2)時間復雜度
2.2 動態(tài)規(guī)劃
狀態(tài)轉(zhuǎn)移方程
maxsum[i]=max(maxsum[i?1]+num[i],num[i])maxsum[i] = max( maxsum[i-1] + num[i], num[i] )maxsum[i]=max(maxsum[i?1]+num[i],num[i])
表示到i元素,最大子序列和的最大值
把所有maxsum[i]的元素最大值返回就是答案
時間復雜度O(n)
| nums[i] | -2 | 1 | -3 | 4 | -1 | 2 | 1 | -5 | 4 |
| maxsum[i] | -2 | max(-2+1,1)=1 | max(1-3,-3)= -2 | 4 | 3 | 5 | 6 | 1 | 5 |
總結(jié)
以上是生活随笔為你收集整理的LeetCode 53. 最大子序和(动态规划)的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: LeetCode 56. 合并区间(优先
- 下一篇: java 主方法 this_java m