struct Solution; impl Solution { pub fn count_hill_valley(nums: Vec) -> i32 { let mut down = false; for i in 1..nums.len() { if nums[i] != nums[0]{ down = nums[i] < nums[0]; break; } } let mut ans = 0; for i in 2..nums.len() { if nums[i] == nums[i-1] { continue; } if down && nums[i] >nums[i-1] { ans += 1; down = false; continue; } if !down && nums[i] < nums[i-1] { ans += 1; down = true; continue; } } ans } } fn main() { let sl = Solution::count_hill_valley(vec![6,6,5,5,4,1]); println!("{}", sl); }