山峰元素是指其值大於或等於左右相鄰值的元素。給定乙個輸入陣列nums,任意兩個相鄰元素值不相等,陣列可能包含多個山峰。找到索引最大的那個山峰元素並返回其索引。
分析:
本問題思想較為簡單,即比較與討論數字相鄰兩數字之間的大小即可。但應考慮到幾種特殊的情況:
(1)只含有乙個山峰且山峰在開頭;
(2)山峰在末尾;
(3)陣列中只含有乙個數。
經過以上分析,下面給出詳細**:
print
("請輸入一組數字:"
)list1 =
list
(map
(int
,input()
.split(
" ")
))
n =len
(list1)
list2 =
if n>1:
for i in
range(1
,n-1):
if list1[i-1]
and list1[i+1]
:if list1[n-1]
>=list1[n-2]
: 1)
if list1[0]
>=list1[1]
: 0)
print
(max
(list2)
)else
:print
("0"
)
算例一:
輸入:2 4 1 2 7 8 4
輸出:5
說明:索引最大的山峰高度為8,其索引為5.
算例二:
輸入:8 7 6 5 4
輸出:0
算例三:
輸入:1 3 4 6 7 8
輸出:5
算例四:
輸入:2
輸出:0
尋找最長唯一山峰字尾
題意 給定一排數字序列,你可以刪除一定長度的字首,使得剩下的數字序列可以通過以此取最前面與最後面的數字構成乙個非遞減序列,詢問至少刪除的字首長度為多少。一篇寫得很好的題解 思路 既然是每次從最前面或者最後面選取元素組成乙個非遞減的序列,那麼我們可以發現就是乙個山峰的形狀,並且當出現兩個山峰的時候,必...
可見的山峰對數量
題目 乙個不含有負數的陣列可以代表一圈環形山,每個位置的值代表山的高度,比如 3,1,2,4,5 4,5,3,1,2 或 1,2,4,5,3 都代表同樣結構的環形山。3 1 2 4 5 3方向叫做next方向 逆時針 3 5 4 2 1 3方向叫做last方向叫做last方向 順時針 山峰a和山峰b...
可見的山峰對數量
可見的山峰對數量 乙個不含有負數陣列可以代表一圈環形山,每個位置的值代表山的高度。比如,或都代表同樣結構的環形山。3 1 2 4 5 3 方向叫作 next 方向 逆時針 3 5 4 2 1 3 方向叫作 last 方向 順時針 山峰 a 和 山峰 b 能夠相互看見的條件為 如果 a 和 b 是同一...