go語(yǔ)言題解LeetCode674最長(zhǎng)連續(xù)遞增序列
題目描述
給定一個(gè)未經(jīng)排序的整數(shù)數(shù)組,找到最長(zhǎng)且 連續(xù)遞增的子序列,并返回該序列的長(zhǎng)度。
連續(xù)遞增的子序列 可以由兩個(gè)下標(biāo) l 和 r(l < r)確定,如果對(duì)于每個(gè) l <= i < r,都有 nums[i] < nums[i + 1] ,那么子序列 [nums[l], nums[l + 1], ..., nums[r - 1], nums[r]] 就是連續(xù)遞增子序列。
示例 1:
輸入:nums = [1,3,5,4,7] 輸出:3 解釋?zhuān)鹤铋L(zhǎng)連續(xù)遞增序列是 [1,3,5], 長(zhǎng)度為3。 盡管 [1,3,5,7] 也是升序的子序列, 但它不是連續(xù)的,因?yàn)?5 和 7 在原數(shù)組里被 4 隔開(kāi)。
示例 2:
輸入:nums = [2,2,2,2,2] 輸出:1 解釋?zhuān)鹤铋L(zhǎng)連續(xù)遞增序列是 [2], 長(zhǎng)度為1。
提示:
1 <= nums.length <= 10^4
-10^9 <= nums[i] <= 10^9
思路分析
一次遍歷:
維護(hù)一個(gè)記錄當(dāng)前遞增的長(zhǎng)度的數(shù)值:temp = 1,因?yàn)樽钌俚倪f增長(zhǎng)度也為 1
更新temp:
- 當(dāng)前數(shù)值 大于 之前的數(shù)值時(shí), 為遞增序列,temp = temp + 1
- 當(dāng)前數(shù)值 小于或等于 之前的數(shù)值時(shí),將 temp 歸入到結(jié)果列表中,重置 temp = 1
當(dāng)結(jié)束時(shí),將最后的 temp 歸入到結(jié)果列表中
返回結(jié)果列表中最大的值。
當(dāng)然也可以不使用列表存儲(chǔ),只需要再重置 temp 之前,比較當(dāng)前的 temp 和 最大的 temp_max,然后更新 temp_max 即可。使用 列表更加有助于理解。
AC 代碼
class Solution:
def findLengthOfLCIS(self, nums: List[int]) -> int:
rev = []
ln = len(nums)
if ln == 0 or ln == 1:
return ln
temp = 1
for i in range(1, ln):
if nums[i]>nums[i-1]:
temp += 1
else:
rev.append(temp)
temp = 1
rev.append(temp)
return max(rev)
不使用列表:
class Solution:
def findLengthOfLCIS(self, nums: List[int]) -> int:
rev = 0
ln = len(nums)
if ln == 0 or ln == 1:
return ln
temp = 1
for i in range(1, ln):
if nums[i]>nums[i-1]:
temp += 1
else:
rev = temp if temp > rev else rev
temp = 1
rev = temp if temp > rev else rev
return rev
參考
畫(huà)解算法:674. 最長(zhǎng)連續(xù)遞增序列 - 最長(zhǎng)連續(xù)遞增序列 - 力扣(LeetCode) (leetcode-cn.com)
以上就是go語(yǔ)言題解LeetCode674最長(zhǎng)連續(xù)遞增序列的詳細(xì)內(nèi)容,更多關(guān)于go題解最長(zhǎng)連續(xù)遞增序列的資料請(qǐng)關(guān)注腳本之家其它相關(guān)文章!
相關(guān)文章
一文詳解Go語(yǔ)言fmt標(biāo)準(zhǔn)庫(kù)的常用占位符使用
這篇文章主要為大家詳細(xì)介紹了Go語(yǔ)言中fmt標(biāo)準(zhǔn)庫(kù)的常用占位符及其簡(jiǎn)單使用,文中的示例代碼講解詳細(xì),對(duì)我們學(xué)習(xí)Go語(yǔ)言有一定的幫助,需要的可以參考一下2022-12-12
Go語(yǔ)言中普通函數(shù)與方法的區(qū)別分析
這篇文章主要介紹了Go語(yǔ)言中普通函數(shù)與方法的區(qū)別,以實(shí)例形式對(duì)比分析了普通函數(shù)與方法使用時(shí)的區(qū)別與相關(guān)技巧,需要的朋友可以參考下2015-02-02
go語(yǔ)言使用io和bufio包進(jìn)行流操作示例詳解
這篇文章主要為大家介紹了go語(yǔ)言使用io和bufio包進(jìn)行流操作示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-08-08
Golang自定義結(jié)構(gòu)體轉(zhuǎn)map的操作
這篇文章主要介紹了Golang自定義結(jié)構(gòu)體轉(zhuǎn)map的操作,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2020-12-12
golang開(kāi)發(fā)?gorilla?websocket的使用示例詳解
這篇文章主要介紹了golang開(kāi)發(fā)?gorilla?websocket的使用示例詳解,介紹了websocket的簡(jiǎn)單使用,我們使用的版本是1.3.0,具體操作方法跟隨小編一起學(xué)習(xí)吧2024-05-05
Golang實(shí)現(xiàn)Trie(前綴樹(shù))的示例
本文主要介紹了Golang實(shí)現(xiàn)Trie(前綴樹(shù))的示例,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2023-01-01

