精品欧美一区二区三区在线观看 _久久久久国色av免费观看性色_国产精品久久在线观看_亚洲第一综合网站_91精品又粗又猛又爽_小泽玛利亚一区二区免费_91亚洲精品国偷拍自产在线观看 _久久精品视频在线播放_美女精品久久久_欧美日韩国产成人在线

最大子序和,又貪心又DP

開發(fā) 前端
本題的貪心思路其實(shí)并不好想,這也進(jìn)一步驗(yàn)證了,別看貪心理論很直白,有時(shí)候看似是常識(shí),但貪心的題目一點(diǎn)都不簡(jiǎn)單!

[[434714]]

從本題開始,貪心題目都比較難了!

 最大子序和

力扣題目鏈接:https://leetcode-cn.com/problems/maximum-subarray

給定一個(gè)整數(shù)數(shù)組 nums ,找到一個(gè)具有最大和的連續(xù)子數(shù)組(子數(shù)組最少包含一個(gè)元素),返回其最大和。

示例: 輸入: [-2,1,-3,4,-1,2,1,-5,4] 輸出: 6 解釋: 連續(xù)子數(shù)組 [4,-1,2,1] 的和最大,為 6。

暴力解法

暴力解法的思路,第一層for 就是設(shè)置起始位置,第二層for循環(huán)遍歷數(shù)組尋找最大值

時(shí)間復(fù)雜度:O(n^2) 空間復(fù)雜度:O(1)

  1. class Solution { 
  2. public
  3.     int maxSubArray(vector<int>& nums) { 
  4.         int result = INT32_MIN; 
  5.         int count = 0; 
  6.         for (int i = 0; i < nums.size(); i++) { // 設(shè)置起始位置 
  7.             count = 0; 
  8.             for (int j = i; j < nums.size(); j++) { // 每次從起始位置i開始遍歷尋找最大值 
  9.                 count += nums[j]; 
  10.                 result = count > result ? count : result; 
  11.             } 
  12.         } 
  13.         return result; 
  14.     } 
  15. }; 

以上暴力的解法C++勉強(qiáng)可以過,其他語言就不確定了。

貪心解法

貪心貪的是哪里呢?

如果 -2 1 在一起,計(jì)算起點(diǎn)的時(shí)候,一定是從1開始計(jì)算,因?yàn)樨?fù)數(shù)只會(huì)拉低總和,這就是貪心貪的地方!

局部最優(yōu):當(dāng)前“連續(xù)和”為負(fù)數(shù)的時(shí)候立刻放棄,從下一個(gè)元素重新計(jì)算“連續(xù)和”,因?yàn)樨?fù)數(shù)加上下一個(gè)元素 “連續(xù)和”只會(huì)越來越小。

全局最優(yōu):選取最大“連續(xù)和”

局部最優(yōu)的情況下,并記錄最大的“連續(xù)和”,可以推出全局最優(yōu)。

從代碼角度上來講:遍歷nums,從頭開始用count累積,如果count一旦加上nums[i]變?yōu)樨?fù)數(shù),那么就應(yīng)該從nums[i+1]開始從0累積count了,因?yàn)橐呀?jīng)變?yōu)樨?fù)數(shù)的count,只會(huì)拖累總和。

這相當(dāng)于是暴力解法中的不斷調(diào)整最大子序和區(qū)間的起始位置。

那有同學(xué)問了,區(qū)間終止位置不用調(diào)整么?如何才能得到最大“連續(xù)和”呢?

區(qū)間的終止位置,其實(shí)就是如果count取到最大值了,及時(shí)記錄下來了。例如如下代碼:

  1. if (count > result) result = count

這樣相當(dāng)于是用result記錄最大子序和區(qū)間和(變相的算是調(diào)整了終止位置)。

如動(dòng)畫所示:

圖片

最大子序和

紅色的起始位置就是貪心每次取count為正數(shù)的時(shí)候,開始一個(gè)區(qū)間的統(tǒng)計(jì)。

那么不難寫出如下C++代碼(關(guān)鍵地方已經(jīng)注釋)

  1. class Solution { 
  2. public
  3.     int maxSubArray(vector<int>& nums) { 
  4.         int result = INT32_MIN; 
  5.         int count = 0; 
  6.         for (int i = 0; i < nums.size(); i++) { 
  7.             count += nums[i]; 
  8.             if (count > result) { // 取區(qū)間累計(jì)的最大值(相當(dāng)于不斷確定最大子序終止位置) 
  9.                 result = count
  10.             } 
  11.             if (count <= 0) count = 0; // 相當(dāng)于重置最大子序起始位置,因?yàn)橛龅截?fù)數(shù)一定是拉低總和 
  12.         } 
  13.         return result; 
  14.     } 
  15. }; 

時(shí)間復(fù)雜度:O(n) 空間復(fù)雜度:O(1)

當(dāng)然題目沒有說如果數(shù)組為空,應(yīng)該返回什么,所以數(shù)組為空的話返回啥都可以了。

不少同學(xué)認(rèn)為 如果輸入用例都是-1,或者 都是負(fù)數(shù),這個(gè)貪心算法跑出來的結(jié)果是0, 這是又一次證明腦洞模擬不靠譜的經(jīng)典案例,建議大家把代碼運(yùn)行一下試一試,就知道了,也會(huì)理解 為什么 result 要初始化為最小負(fù)數(shù)了。

動(dòng)態(tài)規(guī)劃

當(dāng)然本題還可以用動(dòng)態(tài)規(guī)劃來做,當(dāng)前「代碼隨想錄」主要講解貪心系列,后續(xù)到動(dòng)態(tài)規(guī)劃系列的時(shí)候會(huì)詳細(xì)講解本題的dp方法。

那么先給出我的dp代碼如下,有時(shí)間的錄友可以提前做一做:

  1. class Solution { 
  2. public
  3.     int maxSubArray(vector<int>& nums) { 
  4.         if (nums.size() == 0) return 0; 
  5.         vector<int> dp(nums.size(), 0); // dp[i]表示包括i之前的最大連續(xù)子序列和 
  6.         dp[0] = nums[0]; 
  7.         int result = dp[0]; 
  8.         for (int i = 1; i < nums.size(); i++) { 
  9.             dp[i] = max(dp[i - 1] + nums[i], nums[i]); // 狀態(tài)轉(zhuǎn)移公式 
  10.             if (dp[i] > result) result = dp[i]; // result 保存dp[i]的最大值 
  11.         } 
  12.         return result; 
  13.     } 
  14. }; 

時(shí)間復(fù)雜度:O(n) 空間復(fù)雜度:O(n)

總結(jié)

本題的貪心思路其實(shí)并不好想,這也進(jìn)一步驗(yàn)證了,別看貪心理論很直白,有時(shí)候看似是常識(shí),但貪心的題目一點(diǎn)都不簡(jiǎn)單!

后續(xù)將介紹的貪心題目都挺難的,哈哈,所以貪心很有意思,別小看貪心!

其他語言版本

Java

  1. class Solution { 
  2.     public int maxSubArray(int[] nums) { 
  3.         if (nums.length == 1){ 
  4.             return nums[0]; 
  5.         } 
  6.         int sum = Integer.MIN_VALUE; 
  7.         int count = 0; 
  8.         for (int i = 0; i < nums.length; i++){ 
  9.             count += nums[i]; 
  10.             sum = Math.max(sumcount); // 取區(qū)間累計(jì)的最大值(相當(dāng)于不斷確定最大子序終止位置) 
  11.             if (count <= 0){ 
  12.                 count = 0; // 相當(dāng)于重置最大子序起始位置,因?yàn)橛龅截?fù)數(shù)一定是拉低總和 
  13.             } 
  14.         } 
  15.        return sum
  16.     } 
  1. // DP 方法 
  2. class Solution { 
  3.     public int maxSubArray(int[] nums) { 
  4.         int ans = Integer.MIN_VALUE; 
  5.         int[] dp = new int[nums.length]; 
  6.         dp[0] = nums[0]; 
  7.         ans = dp[0]; 
  8.  
  9.         for (int i = 1; i < nums.length; i++){ 
  10.             dp[i] = Math.max(dp[i-1] + nums[i], nums[i]); 
  11.             ans = Math.max(dp[i], ans); 
  12.         } 
  13.  
  14.         return ans; 
  15.     } 

Python

  1. class Solution: 
  2.     def maxSubArray(self, nums: List[int]) -> int
  3.         result = -float('inf'
  4.         count = 0 
  5.         for i in range(len(nums)): 
  6.             count += nums[i] 
  7.             if count > result: 
  8.                 result = count 
  9.             if count <= 0: 
  10.                 count = 0 
  11.         return result 

Go

  1. func maxSubArray(nums []intint { 
  2.     maxSum := nums[0] 
  3.     for i := 1; i < len(nums); i++ { 
  4.         if nums[i] + nums[i-1] > nums[i] { 
  5.             nums[i] += nums[i-1] 
  6.         } 
  7.         if nums[i] > maxSum { 
  8.             maxSum = nums[i] 
  9.         } 
  10.     } 
  11.     return maxSum 

 

責(zé)任編輯:姜華 來源: 代碼隨想錄
相關(guān)推薦

2023-07-18 19:11:21

配置信令系統(tǒng)

2021-09-09 18:12:22

內(nèi)存分段式網(wǎng)絡(luò)

2014-07-23 10:19:02

小米4

2019-07-18 09:17:19

Kafka消息隊(duì)列服務(wù)器

2025-09-17 08:02:09

2022-03-04 12:09:25

SQL數(shù)據(jù)量多表查詢

2017-12-28 10:44:08

JavaScript瀏覽器網(wǎng)頁

2013-12-06 10:11:48

Windows 8Windows 7Windows 8.1

2018-03-05 10:27:47

電腦卡頓舊電腦

2019-05-27 08:09:43

WiFi無線信道上網(wǎng)

2022-01-04 14:21:56

Vite組件React

2014-12-04 09:58:59

PHP

2025-11-13 10:07:08

2020-12-19 10:46:20

黑客網(wǎng)絡(luò)安全網(wǎng)絡(luò)攻擊

2019-11-11 13:40:45

Python 開發(fā)編程語言

2021-12-27 13:57:34

Vite 工具項(xiàng)目

2024-12-04 13:54:19

pnpm存儲(chǔ)項(xiàng)目

2023-12-19 08:28:34

RabbitMQ消息隊(duì)列架構(gòu)

2018-08-15 14:02:19

ODCCIT領(lǐng)域液冷

2022-12-05 14:35:30

點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)

国产真实乱人偷精品| 日韩最新中文字幕| 看黄色一级大片| 999久久久精品国产| 日韩一区二区三区免费看 | 国产99视频精品免视看7| 欧美丰满老妇熟乱xxxxyyy| 日韩毛片网站| 午夜国产不卡在线观看视频| 亚洲欧洲日韩综合二区| 蜜桃av鲁一鲁一鲁一鲁俄罗斯的 | 残酷重口调教一区二区| 欧美一二三在线| 国产精品涩涩涩视频网站| 国产激情视频在线| 91色九色蝌蚪| 999在线免费观看视频| 国产中文字幕视频| 欧美精品三区| 少妇精69xxtheporn| 亚洲天堂美女视频| 电影一区二区三区久久免费观看| 疯狂做受xxxx欧美肥白少妇| 国产在线观看欧美| 99免在线观看免费视频高清| k8久久久一区二区三区| 亚洲a在线播放| 少妇一级淫片日本| 国产精品久久久久9999高清| 久久91亚洲精品中文字幕奶水| 欧美黄色激情视频| 在线亚洲a色| 欧美成人官网二区| 天天久久综合网| 国产精品天堂蜜av在线播放| 欧美丝袜一区二区| 国产精品又粗又长| 亚洲区欧洲区| 亚洲色欲色欲www在线观看| 日本精品国语自产拍在线观看| 空姐吹箫视频大全| 国产成人久久精品77777最新版本| 国产精品色视频| 日批视频免费在线观看| 久久高清免费观看| 欧美一级在线亚洲天堂| 欧美一级片免费在线观看| 激情综合视频| 欧美精品久久一区二区| 国产亚洲精品av| 女生裸体视频一区二区三区| 久久久精品免费视频| 大胸美女被爆操| 成人综合久久| 自拍视频国产精品| 2017亚洲天堂| 久久免费av| 日日噜噜噜夜夜爽亚洲精品| 激情五月激情综合| 亚洲精品a级片| 欧美乱妇40p| 久久久久久久久97| 亚洲激情自拍| 欧美在线视频观看| 丰满人妻老熟妇伦人精品| 久久人人97超碰国产公开结果| 欧美中文在线视频| 波多野结衣视频网址| 日本不卡在线视频| 成人欧美一区二区三区在线湿哒哒| 一二三四区视频| 国产麻豆精品theporn| 成人免费视频网站入口| 日本精品一二区| 久久天天做天天爱综合色| 欧洲av一区| 日本免费在线观看| 夜夜嗨av一区二区三区网页| 成人黄色av片| 91p九色成人| 制服丝袜亚洲精品中文字幕| 男人网站在线观看| 国产精选一区| 久久精品2019中文字幕| 久久久久久久蜜桃| 久久精品二区三区| 91久久精品久久国产性色也91| 精品国自产在线观看| 91在线看国产| 一本久道久久综合狠狠爱亚洲精品| aa在线视频| 欧美性xxxx在线播放| 国产色视频在线播放| 国产精品成人自拍| 中文字幕少妇一区二区三区| 清纯粉嫩极品夜夜嗨av| 久久av一区| 99国产高清| 欧美777四色影视在线 | 亚洲天堂av免费在线观看| 动漫一区二区| 欧美日韩小视频| 成年人小视频在线观看| 久久视频在线| 7777kkkk成人观看| 国产口爆吞精一区二区| 2020日本不卡一区二区视频| 艳母动漫在线观看| 日韩av超清在线观看| 精品国精品国产| 亚洲图片第一页| 亚洲一区国产| 2014国产精品| 成人综合影院| 欧美日韩午夜剧场| 亚洲欧美日韩网站| 精品视频亚洲| 97超级碰碰碰久久久| av一区二区三| 国产精品欧美久久久久一区二区| 成人午夜免费在线| 97精品久久| 久久精品国产成人| 一区二区乱子伦在线播放| 99久久婷婷国产综合精品电影| 在线观看免费黄色片| 国产精品麻豆成人av电影艾秋| 亚洲欧美激情精品一区二区| 亚洲国产精品成人无久久精品| 国产老妇另类xxxxx| 亚州欧美一区三区三区在线| 亚洲wwww| 亚洲欧洲午夜一线一品| 久久久久久久久影院| av亚洲精华国产精华精华| 六月婷婷激情网| 99久久久成人国产精品| 日韩在线视频网站| 中文字幕制服诱惑| 国产精品―色哟哟| 亚洲最大综合网| 精品日本12videosex| 日本人成精品视频在线| 毛片在线免费| 色综合久久久久综合99| 欧美成人午夜精品免费| 亚洲欧美日韩综合国产aⅴ| 精品免费国产| 在线手机中文字幕| 亚洲免费人成在线视频观看| 天天操夜夜操视频| 久久久亚洲综合| 国产日韩一区二区在线观看| 久久99蜜桃| 日韩免费观看av| 北岛玲一区二区三区| 欧美在线一区二区三区| 日本一区二区视频在线播放| 久久精品国产久精国产爱| 中文字幕久久综合| 日韩高清一区| 午夜精品久久久久久久99黑人 | 国产精品va视频| 免费91在线视频| 老牛影视av牛牛影视av| 欧美日韩国产丝袜另类| 91成年人网站| 老汉av免费一区二区三区| 黄色网址在线免费看| 亚洲日本视频在线| 57pao成人永久免费视频| 六十路在线观看| 欧美男生操女生| 黄页网站免费观看| www.av亚洲| 人人干人人视频| 一本一道久久a久久精品蜜桃| 成人自拍爱视频| 在线免费日韩片| 中日韩午夜理伦电影免费| 国产丝袜视频在线观看| 天天色天天操综合| 色欲AV无码精品一区二区久久 | 喷水视频在线观看| 日本欧美在线看| 久久久久福利视频| 亚洲精品播放| 91久久久亚洲精品| 1234区中文字幕在线观看| 在线日韩中文字幕| 黄色av网址在线| 欧美性视频一区二区三区| 欧美日韩精品亚洲精品| 久久九九久久九九| 乳色吐息在线观看| 久久亚洲图片| 日韩亚洲欧美一区二区| 精品黄色一级片| 国产精品久久国产三级国电话系列| 中文在线аv在线| 欧美大片va欧美在线播放| 欧美成人综合在线| 欧美成人aa大片| 最新中文字幕免费| 亚洲成国产人片在线观看| 日日碰狠狠添天天爽| 99久久国产综合色|国产精品| 不卡中文字幕在线观看| 亚洲一区欧美二区| 成人短视频在线观看免费| 清纯唯美日韩| 久久国产手机看片| 亚洲高清在线一区| 国产女人18毛片水18精品| 345成人影院| 久久久久五月天| 久久精品视频免费看| 国产午夜一区二区| 日韩精品123| 精品嫩草影院久久| 99久久夜色精品国产亚洲| 日本电影亚洲天堂一区| 在线观看国产亚洲| 亚洲电影第三页| 国产a免费视频| 国产精品久久久久永久免费观看| 无码h肉动漫在线观看| av电影一区二区| 香蕉视频免费网站| 国产精品一卡二| 免费不卡av网站| 韩国av一区二区三区四区| 久久人人爽av| 青青草国产成人99久久| 999精品网站| 久久中文在线| 国产又大又硬又粗| 亚洲在线视频| 免费黄色福利视频| 亚洲在线一区| 日本精品一区二区三区四区| 国产美女精品| 国产女女做受ⅹxx高潮| 香蕉久久夜色精品| 超碰97人人射妻| 肉色丝袜一区二区| 激情综合网俺也去| 青青草国产精品97视觉盛宴| 日本肉体xxxx裸体xxx免费| 免费看日韩精品| 日本人视频jizz页码69| 麻豆专区一区二区三区四区五区| 色婷婷狠狠18| 精品一区二区在线播放| 国产欧美精品一二三| 国产综合久久久久影院| 亚洲三级在线视频| 粉嫩aⅴ一区二区三区四区五区| 久久久久国产免费| 97精品电影院| 极品蜜桃臀肥臀-x88av| 国产精品亲子乱子伦xxxx裸| 人人艹在线视频| 亚洲精品一卡二卡| 日韩精品乱码久久久久久| 欧美日韩亚洲一区二区| 最近中文在线观看| 欧美一级免费观看| 欧美自拍偷拍第一页| 亚洲精品一区二区三区不| h网站在线免费观看| 久久久av电影| 成人黄色动漫| 国产成人在线精品| 91精品一区| 国产精品久久精品视| 精品国产aⅴ| 乱子伦一区二区| 99视频精品| 小明看看成人免费视频| 成人一区在线看| 香蕉视频久久久| 一区二区三区中文字幕精品精品| 一级免费在线观看| 精品视频1区2区| 欧美 日韩 国产 成人 在线 91 | 成人蜜桃视频| 亚洲日产av中文字幕| 午夜啪啪免费视频| 99在线|亚洲一区二区| 91福利国产成人精品播放| 成人免费黄色大片| 国产免费嫩草影院| 亚洲1区2区3区4区| 91久久精品国产91性色69| 亚洲国产精品成人精品| 日韩在线免费电影| 97在线视频免费观看| 亚洲伦理网站| 欧美精品v日韩精品v国产精品| 久久精品影视| 免费在线观看的毛片| 国产91精品入口| 女人十八毛片嫩草av| 婷婷久久综合九色综合绿巨人| 在线免费av网| 亚洲欧美国产精品久久久久久久| 图片区小说区亚洲| 国产欧美久久一区二区| 丝袜美腿一区二区三区动态图 | 日本动漫同人动漫在线观看| 国产精品久久久久久久av电影| 国产精品17p| 国产盗摄视频在线观看| 日韩高清不卡一区| 一级做a爰片毛片| 一区二区高清视频在线观看| 一级黄色片网站| 一区二区三区亚洲| 亚洲欧洲美洲av| 国产精品区一区二区三在线播放| 图片区亚洲欧美小说区| 男人搞女人网站| 久久精品一区蜜桃臀影院| 欧美精品亚洲精品日韩精品| 日韩西西人体444www| 免费网站免费进入在线| 国产精品久久久久久搜索| 亚洲综合小说图片| 欧美国产亚洲一区| 成人黄色在线网站| 国产小视频在线看| 精品国产91亚洲一区二区三区婷婷| 国产精品一区二区三区视频网站| 国产一区二区丝袜高跟鞋图片| 成人vr资源| 欧美午夜aaaaaa免费视频| 国产人久久人人人人爽| 国产一级片免费在线观看| 亚洲欧美色婷婷| 成人av免费电影网站| 久久人人九九| 天堂资源在线中文精品| 久久久久久国产精品无码| 色天天综合久久久久综合片| 国产在线观看黄| 国产福利成人在线| 日本一区二区三区视频| 欧美特级aaa| 亚洲人一二三区| 性一交一乱一透一a级| 国内精品久久久久久中文字幕| 嗯用力啊快一点好舒服小柔久久| 男人添女人荫蒂免费视频| av综合在线播放| 在线观看日本网站| 在线播放日韩欧美| 国产精品视频一区二区三区| 欧美 亚洲 视频| av一区二区久久| 啪啪小视频网站| 久久天堂电影网| 超碰97成人| 日本在线观看a| 日韩美女视频一区二区| 亚洲大尺度视频| 奇米成人av国产一区二区三区| 国内黄色精品| 国产高清av片| 婷婷综合在线观看| 91激情在线| 成人资源av| 老鸭窝91久久精品色噜噜导演| 丰满的亚洲女人毛茸茸| 日韩欧美国产电影| 成人免费看黄| 成人手机视频在线| 91小视频在线| 91麻豆国产视频| 欧美国产日韩一区二区在线观看| 日韩人体视频| 天堂av8在线| 精品国产乱码久久久久久婷婷| av二区在线| 国产精品手机视频| 日本在线不卡一区| 久草免费新视频| 一本色道久久综合亚洲精品小说| 精品久久亚洲| 激情婷婷综合网| 伊人一区二区三区| 国产黄色在线| 国产精华一区| 蜜臀国产一区二区三区在线播放| 久久久久无码精品国产| 中文字幕国产亚洲2019| 国内精品偷拍| 五月天婷婷在线观看视频| 色综合天天综合网天天看片 | 2021国产精品视频|