go語言題解LeetCode674最長連續(xù)遞增序列
題目描述
給定一個未經(jīng)排序的整數(shù)數(shù)組,找到最長且 連續(xù)遞增的子序列,并返回該序列的長度。
連續(xù)遞增的子序列 可以由兩個下標 l 和 r(l < r)確定,如果對于每個 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ù)的,因為 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
思路分析
一次遍歷:
維護一個記錄當前遞增的長度的數(shù)值:temp = 1,因為最少的遞增長度也為 1
更新temp:
- 當前數(shù)值 大于 之前的數(shù)值時, 為遞增序列,temp = temp + 1
- 當前數(shù)值 小于或等于 之前的數(shù)值時,將 temp 歸入到結(jié)果列表中,重置 temp = 1
當結(jié)束時,將最后的 temp 歸入到結(jié)果列表中
返回結(jié)果列表中最大的值。
當然也可以不使用列表存儲,只需要再重置 temp 之前,比較當前的 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ù)遞增序列的詳細內(nèi)容,更多關于go題解最長連續(xù)遞增序列的資料請關注腳本之家其它相關文章!
相關文章
Go?Web開發(fā)之Gin多服務配置及優(yōu)雅關閉平滑重啟實現(xiàn)方法
這篇文章主要為大家介紹了Go?Web開發(fā)之Gin多服務配置及優(yōu)雅關閉平滑重啟實現(xiàn)方法詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪2024-01-01
通過函數(shù)如何將golang?float64?保留2位小數(shù)(方法匯總)
這篇文章主要介紹了通過函數(shù)將golang?float64保留2位小數(shù),本文給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下2023-08-08
golang實現(xiàn)ip訪問限制及提交次數(shù)
在?Web?應用中,通常會需要對?IP?訪問進行限制以及控制提交次數(shù),本文將使用中間件或者基于?Redis?這樣的緩存服務來實現(xiàn),感興趣的可以了解下2024-10-10
優(yōu)雅使用GoFrame共享變量Context示例詳解
這篇文章主要為大家介紹了優(yōu)雅使用GoFrame共享變量Context示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪2022-06-06

