💝💝💝歡迎來到我的博客,很高興能夠在這里和您見面!希望您在這里可以感受到一份輕松愉快的氛圍,不僅可以獲得有趣的內容和知識,也可以暢所欲言、分享您的想法和見解。
- 推薦:kwan 的首頁,持續學習,不斷總結,共同進步,活到老學到老
- 導航
- 檀越劍指大廠系列:全面總結 java 核心技術點,如集合,jvm,并發編程 redis,kafka,Spring,微服務,Netty 等
- 常用開發工具系列:羅列常用的開發工具,如 IDEA,Mac,Alfred,electerm,Git,typora,apifox 等
- 數據庫系列:詳細總結了常用數據庫 mysql 技術點,以及工作中遇到的 mysql 問題等
- 懶人運維系列:總結好用的命令,解放雙手不香嗎?能用一個命令完成絕不用兩個操作
- 數據結構與算法系列:總結數據結構和算法,不同類型針對性訓練,提升編程思維,劍指大廠
非常期待和您一起在這個小小的網絡世界里共同探索、學習和成長。💝💝💝 ?? 歡迎訂閱本專欄 ??
博客目錄
- 一.題目描述
- 1.題目信息
- 2.示例
- 3.提示
- 二.題解
- 1.動態規劃解決
- 2.解題思路
- 3.關鍵點
- 三.自我分析
- 1.解題思路
- 2.思考鏈路
一.題目描述
1.題目信息
題目地址
給你一個整數數組
nums
,請你找出一個具有最大和的連續子數組(子數組最少包含一個元素),返回其最大和。子數組 是數組中的一個連續部分。
2.示例
示例 1:
輸入:nums = [-2,1,-3,4,-1,2,1,-5,4]
輸出:6
解釋:連續子數組 [4,-1,2,1] 的和最大,為 6 。
示例 2:
輸入:nums = [1]
輸出:1
示例 3:
輸入:nums = [5,4,-1,7,8]
輸出:23
3.提示
提示:
- 1 <= nums.length <= 105
- -104 <= nums[i] <= 104
二.題解
1.動態規劃解決
public class LC_01_maxSubArray_53 {public int maxSubArray(int[] nums) {final int len = nums.length;int[] dp = new int[len];dp[0] = nums[0];int res = nums[0];for (int i = 1; i < len; i++) {dp[i] = Math.max(dp[i - 1] + nums[i], nums[i]);//更新最大值res = Math.max(res, dp[i]);}return res;}
}
2.解題思路
- 第一眼看到很懵逼
- 看了別人的題解,發現要找當前的數是否在結果里面
- 假定當前的數是在結果里面,并且是最后一個數
- 比較每個最后一個數的最大值
3.關鍵點
-
子問題 1:以 ?2 結尾的連續子數組的最大和是多少;
-
子問題 2:以 1 結尾的連續子數組的最大和是多少;
-
子問題 3:以 ?3 結尾的連續子數組的最大和是多少;
-
子問題 4:以 4 結尾的連續子數組的最大和是多少;
-
子問題 5:以 ?1 結尾的連續子數組的最大和是多少;
-
子問題 6:以 2 結尾的連續子數組的最大和是多少;
-
子問題 7:以 1 結尾的連續子數組的最大和是多少;
-
子問題 8:以 ?5 結尾的連續子數組的最大和是多少;
-
子問題 9:以 4 結尾的連續子數組的最大和是多少。
三.自我分析
1.解題思路
if 有思路開寫
else去看相關標簽,確定具體解題方法if 有思路開寫else看提示信息if 有思路開寫else看答案
2.思考鏈路
- 沒有思路
- 多做,多思考
- 形成自己的肌肉記憶
覺得有用的話點個贊
👍🏻
唄。
??????本人水平有限,如有紕漏,歡迎各位大佬評論批評指正!😄😄😄💘💘💘如果覺得這篇文對你有幫助的話,也請給個點贊、收藏下吧,非常感謝!👍 👍 👍
🔥🔥🔥Stay Hungry Stay Foolish 道阻且長,行則將至,讓我們一起加油吧!🌙🌙🌙