leetcode_rust/
largest_number_at_least_twice_of_others.rs1#![allow(dead_code)]
2
3pub fn dominant_index(nums: Vec<i32>) -> i32 {
4 if nums.len() == 0 {
5 return -1;
6 }
7 if nums.len() == 1 {
8 return 0;
9 }
10 let largest = nums
11 .clone()
12 .into_iter()
13 .enumerate()
14 .max_by(|a, b| a.1.cmp(&b.1))
15 .unwrap();
16 for num in nums {
17 if num * 2 > largest.1 && num != largest.1 {
18 return -1;
19 }
20 }
21 largest.0 as i32
22}
23
24#[cfg(test)]
25mod tests {
26 use super::*;
27
28 #[test]
29 fn test1() {
30 assert_eq!(dominant_index(vec![3, 6, 1, 0]), 1);
31 assert_eq!(dominant_index(vec![1, 2, 3, 4]), -1);
32 assert_eq!(dominant_index(vec![0, 0, 0, 1]), 3);
33 assert_eq!(dominant_index(vec![1, 2, 3, 4]), -1);
34 }
35}