演算法練習 最長連續遞增序列

2021-10-17 11:03:42 字數 1016 閱讀 3307

題目:

給定乙個未經排序的整數陣列,找到最長且連續遞增的子串行,並返回該序列的長度。

連續遞增的子串行 可以由兩個下標 l 和 r(l < r)確定,如果對於每個 l <= i < r,都有 nums[i] < nums[i + 1] ,那麼子串行 [nums[l], nums[l + 1], …, nums[r - 1], nums[r]] 就是連續遞增子串行。

示例 1:

輸入:nums = [1,3,5,4,7]

輸出:3

解釋:最長連續遞增序列是 [1,3,5], 長度為3。

儘管 [1,3,5,7] 也是公升序的子串行, 但它不是連續的,因為 5 和 7 在原陣列裡被 4 隔開。

示例 2:

輸入:nums = [2,2,2,2,2]

輸出:1

解釋:最長連續遞增序列是 [2], 長度為1。

0 <= nums.length <= 104

-109 <= nums[i] <= 109

思路:

設定指標x,y,for迴圈判斷陣列當前索引值與後一位索引值大小,若當前位小於後一位,則y++(y相當於當前連續遞增子串行的長度,因此一開始=0),math.max(x,y)方法返回兩數中的最大值給x(x用於儲存目前為止序列中的最長子序列長度)。若當前位大於後一位,則遞增中斷,判斷此時子串行長度與之前x中存入的哪個大,把較大的數賦值給x,然後y從1開始計算下乙個子串行長度,最終迴圈完畢返回x。

執行後發現如果陣列中只有乙個元素無法比較,會返回錯誤的值所以增加判斷:

if

(nums.length==1)

**實現:

class

solution

for(

int i=

0;i1;i++

)else

}return x;

}}

最長連續遞增序列001

2 思路 3 notes 4 複雜度 5 code 674給定乙個未經排序的整數陣列,找到最長且連續的的遞增序列,並返回該序列的長度 輸入 1,3,5,4,7 輸出 3 解釋 最長連續遞增序列是 1,3,5 長度為3。儘管 1,3,5,7 也是公升序的子串行,但它不是連續的,因為5和7在原陣列裡被4...

674 最長連續遞增序列

題目描述 給定乙個未經排序的整數陣列,找到最長且連續的的遞增序列,並返回該序列的長度。示例 1 輸入 1,3,5,4,7 輸出 3 解釋 最長連續遞增序列是 1,3,5 長度為3。儘管 1,3,5,7 也是公升序的子串行,但它不是連續的,因為5和7在原陣列裡被4隔開。示例 2 輸入 2,2,2,2,...

674 最長連續遞增序列

一 題目描述 給定乙個未經排序的整數陣列,找到最長且 連續遞增的子串行,並返回該序列的長度。連續遞增的子串行 可以由兩個下標 l 和 r l r 確定,如果對於每個 l i r,都有 nums i nums i 1 那麼子串行 nums l nums l 1 nums r 1 nums r 就是連續...