Find the Minimum and Maximum Number of Nodes Between Critical Points LeetCode solution in Python

1
# Runtime: 687 ms (Top 71.4%) | Memory: 56.78 MB (Top 82.0%)
2

3

4
class Solution:
5
def nodesBetweenCriticalPoints(self, head: Optional[ListNode]) -> List[int]:
6
idx, i = [], 1
7
prev, cur = head, head.next
8
while cur and cur.next:
9
if prev.val < cur.val > cur.next.val or prev.val > cur.val < cur.next.val:
10
idx.append(i)
11
prev = cur
12
cur = cur.next
13
i += 1
14

15
if len(idx) < 2:
16
return [-1, -1]
17

18
minDist = min(j - i for i, j in pairwise(idx))
19
maxDist = idx[-1] - idx[0]
20

21
return [minDist, maxDist]

0

WPM •0 •0

100%

ACC •0 •0

0s

TIME •0