2025-07-30 10:59:42 +08:00
|
|
|
use std::cmp::max;
|
2025-07-29 11:20:14 +08:00
|
|
|
|
2025-07-10 14:13:01 +08:00
|
|
|
struct Solution;
|
|
|
|
impl Solution {
|
2025-07-30 10:59:42 +08:00
|
|
|
pub fn longest_subarray(nums: Vec<i32>) -> i32 {
|
|
|
|
let mut ans = 0;
|
|
|
|
let mut ans_val = 0;
|
|
|
|
let mut last = 0;
|
|
|
|
let mut count = 0;
|
2025-07-28 11:18:09 +08:00
|
|
|
for i in 0..nums.len() {
|
2025-07-30 10:59:42 +08:00
|
|
|
if nums[i] != last {
|
|
|
|
if ans_val < last {
|
|
|
|
ans_val = last;
|
|
|
|
ans = count;
|
|
|
|
}else if ans_val == last {
|
|
|
|
ans = max(count,ans);
|
|
|
|
}
|
|
|
|
last = nums[i];
|
|
|
|
count = 1;
|
|
|
|
} else {
|
|
|
|
count += 1;
|
2025-07-22 21:59:38 +08:00
|
|
|
}
|
2025-07-30 10:59:42 +08:00
|
|
|
}
|
|
|
|
if ans_val < last {
|
|
|
|
ans = count;
|
|
|
|
}else if ans_val == last {
|
|
|
|
ans = max(count,ans);
|
2025-07-26 23:49:26 +08:00
|
|
|
}
|
2025-07-29 11:20:14 +08:00
|
|
|
ans
|
2025-07-10 14:13:01 +08:00
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
fn main() {
|
2025-07-30 10:59:42 +08:00
|
|
|
let sl = Solution::longest_subarray(vec![96317,96317,96317,96317,96317,96317,96317,96317,96317,279979]);
|
2025-07-29 11:20:14 +08:00
|
|
|
println!("{:?}", sl);
|
2025-07-10 14:13:01 +08:00
|
|
|
}
|