1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
// @Title: 0~n-1中缺失的数字 (缺失的数字  LCOF)
// @Author: 15816537946@163.com
// @Date: 2022-02-03 13:04:28
// @Runtime: 0 ms
// @Memory: 2.1 MB
impl Solution {
    pub fn missing_number(nums: Vec<i32>) -> i32 {
        let (mut lo, mut hi) = (0, (nums.len() - 1) as i32);
        while lo <= hi {
            let mut m = (lo + hi) >> 1;
            if nums[m as usize] == m {
                lo = m + 1;
            } else {
                hi = m - 1;
            }
        }

        lo
    }
}