leetcode_rust/
majority_element.rs1#![allow(dead_code)]
2
3pub fn majority_element(nums: Vec<i32>) -> i32 {
4 let mut count = 0;
5 let mut temp = nums[0];
6 for num in nums {
7 if num == temp {
8 count += 1;
9 } else if count == 0 {
10 temp = num;
11 count += 1;
12 } else {
13 count -= 1;
14 }
15 }
16
17 temp
18}
19
20#[cfg(test)]
21mod tests {
22 use super::*;
23
24 #[test]
25 fn test1() {
26 assert_eq!(majority_element(vec![3, 2, 3]), 3);
27 assert_eq!(majority_element(vec![2, 2, 1, 1, 1, 2, 2]), 2);
28 assert_eq!(majority_element(vec![6, 5, 5]), 5);
29 }
30}