File tree Expand file tree Collapse file tree 1 file changed +30
-0
lines changed Expand file tree Collapse file tree 1 file changed +30
-0
lines changed Original file line number Diff line number Diff line change 1+ Thoughts:
2+ * run through each node
3+ * check if it's an extreme
4+ * if extreme, compare index to previous extreme to check for min distances
5+ * also compare index to first extreme index, this will always increase so no need to compare
6+
7+ ``` python
8+ class Solution :
9+ def nodesBetweenCriticalPoints (self , head : Optional[ListNode]) -> List[int ]:
10+ min_dist = 10 ** 5
11+ max_dist = 0
12+ prev_index = None
13+ node = head
14+ n = 1
15+ while node.next.next:
16+ if (node.val < node.next.val > node.next.next.val) or (node.val > node.next.val < node.next.next.val):
17+ if prev_index is None :
18+ first_extreme = n
19+ else :
20+ min_dist = min (min_dist, n - prev_index)
21+ max_dist = n - first_extreme
22+ prev_index = n
23+ node = node.next
24+ n+= 1
25+
26+ if max_dist == 0 :
27+ return [- 1 ,- 1 ]
28+ else :
29+ return [min_dist, max_dist]
30+ ```
You can’t perform that action at this time.
0 commit comments