Count Hills and Valleys in an Array LeetCode solution in Java

1
class Solution {
2
public int countHillValley(int[] nums) {
3
int result = 0;
4

5
// Get head start. Find first index for which nums[index] != nums[index-1]
6
int start = 1;
7
while (start < nums.length && nums[start] == nums[start - 1]) start++;
8

9
int prev = start - 1; // index of prev different value num
10
for (int i = start; i < nums.length - 1; i++) {
11
if (nums[i] == nums[i + 1]) // If numbers are same, simply ignore them
12
continue;
13
else {
14
if (nums[i] > nums[prev]
15
&& nums[i] > nums[i + 1]) // compare current num with prev number and next number
16
result++;
17
if (nums[i] < nums[prev] && nums[i] < nums[i + 1]) result++;
18
prev = i; // Now your current number will become prev number.
19
}
20
}
21

22
return result;
23
}
24
}

0

WPM •0 •0

100%

ACC •0 •0

0s

TIME •0