1
Fork 0
leetcode/source/missing_number/mod.rs

19 lines
652 B
Rust

pub fn missing_number(numbers: Vec<i32>) -> i32 {
// The range of numbers can be described as the total sum of all possible
// numbers in that range.
let total_range = (0..=numbers.len() as i32).sum::<i32>();
// And since only one number is missing from that range, the difference
// between the range's sum and the numbers' sum will be that missing number.
let sum_of_numbers = numbers.iter().sum::<i32>();
total_range - sum_of_numbers
}
#[test]
fn test_missing_number() {
assert_eq!(missing_number(vec![3, 0, 1]), 2);
assert_eq!(missing_number(vec![0, 1]), 2);
assert_eq!(missing_number(vec![9, 6, 4, 2, 3, 5, 7, 0, 1]), 8);
}