LC152---乘积最大子数组
生活随笔
收集整理的這篇文章主要介紹了
LC152---乘积最大子数组
小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
152. 乘積最大子數(shù)組
難度中等963
給你一個(gè)整數(shù)數(shù)組 nums ,請(qǐng)你找出數(shù)組中乘積最大的連續(xù)子數(shù)組(該子數(shù)組中至少包含一個(gè)數(shù)字),并返回該子數(shù)組所對(duì)應(yīng)的乘積。
示例 1:
輸入: [2,3,-2,4] 輸出: 6 解釋: 子數(shù)組 [2,3] 有最大乘積 6。示例 2:
輸入: [-2,0,-1] 輸出: 0 解釋: 結(jié)果不能為 2, 因?yàn)?[-2,-1] 不是子數(shù)組標(biāo)簽:動(dòng)態(tài)規(guī)劃
-
遍歷數(shù)組時(shí)計(jì)算當(dāng)前最大值,不斷更新
-
令imax為當(dāng)前最大值,則當(dāng)前最大值為 imax = max(imax * nums[i], nums[i])
-
由于存在負(fù)數(shù),那么會(huì)導(dǎo)致最大的變最小的,最小的變最大的。因此還需要維護(hù)當(dāng)前最小值imin = min(imin * nums[i], nums[i])
-
當(dāng)負(fù)數(shù)出現(xiàn)時(shí)則imax與imin進(jìn)行交換再進(jìn)行下一步計(jì)算
-
時(shí)間復(fù)雜度:O(n)
總結(jié)
以上是生活随笔為你收集整理的LC152---乘积最大子数组的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: java业务场景-实现订单超时关闭等延时
- 下一篇: TextRank算法学习笔记