2025-07-10 14:13:01 +08:00
|
|
|
struct Solution;
|
|
|
|
impl Solution {
|
2025-07-27 10:15:01 +08:00
|
|
|
pub fn count_hill_valley(nums: Vec<i32>) -> i32 {
|
|
|
|
let mut down = false;
|
|
|
|
for i in 1..nums.len() {
|
|
|
|
if nums[i] != nums[0]{
|
|
|
|
down = nums[i] < nums[0];
|
|
|
|
break;
|
2025-07-22 21:59:38 +08:00
|
|
|
}
|
2025-07-26 23:49:26 +08:00
|
|
|
}
|
2025-07-27 10:15:01 +08:00
|
|
|
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;
|
|
|
|
}
|
2025-07-10 14:13:01 +08:00
|
|
|
}
|
2025-07-27 10:15:01 +08:00
|
|
|
ans
|
2025-07-10 14:13:01 +08:00
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
fn main() {
|
2025-07-27 10:15:01 +08:00
|
|
|
let sl = Solution::count_hill_valley(vec![6,6,5,5,4,1]);
|
2025-07-10 14:13:01 +08:00
|
|
|
println!("{}", sl);
|
|
|
|
}
|
2025-07-26 23:49:26 +08:00
|
|
|
|