我們把陣列a
中符合下列屬性的任意連續子陣列b
稱為 「山脈」:
b
可以是a
的任意子陣列,包括整個陣列a
。)
給出乙個整數陣列a
,返回最長 「山脈」 的長度。
如果不含有 「山脈」 則返回0
。
示例 1:
輸入:[2,1,4,7,3,2,5]
輸出:5
解釋:最長的 「山脈」 是 [1,4,7,3,2],長度為 5。
示例 2:
輸入:[2,2,2]
輸出:0
解釋:不含 「山脈」。
通過次數14,461
| 提交次數36,604
**實現
class
solution
:def
longestmountain
(self, a: list[
int])-
>
int:
idx, re, ls, rs =1,
0,0,
0while idx<
len(a)
:while idx<
len(a)
and a[idx]
==a[idx-1]
: idx+=
1 ls, rs = idx-
1,idx-
1while idx<
len(a)
and a[idx]
>a[idx-1]
: idx+=
1 rs=idx-
1if rs==ls:
idx, ls, rs = idx+
1, ls+
1, rs+
1while rs>ls:
while idx<
len(a)
and a[idx]
: idx+=
1if idx-
1>rs:
re =
max(idx-ls, re)
ls = idx-
1return re
每日一題 45 陣列中的逆序對
題目來自劍指offer 題目 舉例 思路 方法 1 暴力方法 對於陣列中任意兩個數,均做一次判定,判斷是否為逆序對。時間複雜度 o n 2 方法 2 類似於歸併排序。1 首先把陣列分成兩個長度均等的陣列 2 分布對這兩個陣列排序 小到大 3 之後再求逆序對,同時對把這兩個陣列合併到乙個陣列 時間複雜...
LeetCode 每日一題 陣列中數字出現的次數
陣列中數字出現的最大次數 乙個整型陣列 nums 裡除兩個數字之外,其他數字都出現了兩次。請寫程式找出這兩個只出現一次的數字。要求時間複雜度是o n 空間複雜度是o 1 示例 1 輸入 nums 4,1,4,6 輸出 1,6 或 6,1 示例 2 輸入 nums 1,2,10,4,1,4,3,3 輸...
每日一題 找出陣列中的幸運數
在整數陣列中,如果乙個整數的出現頻次和它的數值大小相等,我們就稱這個整數為 幸運數 給你乙個整數陣列 arr,請你從中找出並返回乙個幸運數。如果陣列中存在多個幸運數,只需返回 最大 的那個。如果陣列中不含幸運數,則返回 1 示例 1 輸入 arr 2,2,3,4 輸出 2 解釋 陣列中唯一的幸運數是...