go語言題解LeetCode674最長連續(xù)遞增序列
題目描述
給定一個(gè)未經(jīng)排序的整數(shù)數(shù)組,找到最長且 連續(xù)遞增的子序列,并返回該序列的長度。
連續(xù)遞增的子序列 可以由兩個(gè)下標(biāo) l
和 r(l < r)
確定,如果對于每個(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 解釋:最長連續(xù)遞增序列是 [1,3,5], 長度為3。 盡管 [1,3,5,7] 也是升序的子序列, 但它不是連續(xù)的,因?yàn)?5 和 7 在原數(shù)組里被 4 隔開。
示例 2:
輸入:nums = [2,2,2,2,2] 輸出:1 解釋:最長連續(xù)遞增序列是 [2], 長度為1。
提示:
1 <= nums.length <= 10^4
-10^9 <= nums[i] <= 10^9
思路分析
一次遍歷:
維護(hù)一個(gè)記錄當(dāng)前遞增的長度的數(shù)值:temp = 1,因?yàn)樽钌俚倪f增長度也為 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)然也可以不使用列表存儲,只需要再重置 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
參考
畫解算法:674. 最長連續(xù)遞增序列 - 最長連續(xù)遞增序列 - 力扣(LeetCode) (leetcode-cn.com)
以上就是go語言題解LeetCode674最長連續(xù)遞增序列的詳細(xì)內(nèi)容,更多關(guān)于go題解最長連續(xù)遞增序列的資料請關(guān)注腳本之家其它相關(guān)文章!
相關(guān)文章
一文詳解Go語言fmt標(biāo)準(zhǔn)庫的常用占位符使用
這篇文章主要為大家詳細(xì)介紹了Go語言中fmt標(biāo)準(zhǔn)庫的常用占位符及其簡單使用,文中的示例代碼講解詳細(xì),對我們學(xué)習(xí)Go語言有一定的幫助,需要的可以參考一下2022-12-12Golang自定義結(jié)構(gòu)體轉(zhuǎn)map的操作
這篇文章主要介紹了Golang自定義結(jié)構(gòu)體轉(zhuǎn)map的操作,具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧2020-12-12golang開發(fā)?gorilla?websocket的使用示例詳解
這篇文章主要介紹了golang開發(fā)?gorilla?websocket的使用示例詳解,介紹了websocket的簡單使用,我們使用的版本是1.3.0,具體操作方法跟隨小編一起學(xué)習(xí)吧2024-05-05Golang實(shí)現(xiàn)Trie(前綴樹)的示例
本文主要介紹了Golang實(shí)現(xiàn)Trie(前綴樹)的示例,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2023-01-01