use std::cmp::max; struct Solution; impl Solution { pub fn longest_subarray(nums: Vec) -> i32 { let mut ans = 0; let mut ans_val = 0; let mut last = 0; let mut count = 0; for i in 0..nums.len() { 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; } } if ans_val < last { ans = count; }else if ans_val == last { ans = max(count,ans); } ans } } fn main() { let sl = Solution::longest_subarray(vec![96317,96317,96317,96317,96317,96317,96317,96317,96317,279979]); println!("{:?}", sl); }