diff --git a/problems/0704.二分查找.md b/problems/0704.二分查找.md index e576443e..f2af7daa 100644 --- a/problems/0704.二分查找.md +++ b/problems/0704.二分查找.md @@ -406,6 +406,49 @@ func search(nums: [Int], target: Int) -> Int { ``` +**Rust:** + +```rust +# (版本一)左闭右闭区间 + +impl Solution { + pub fn search(nums: Vec, target: i32) -> i32 { + let mut left:usize = 0; + let mut right:usize = nums.len() - 1; + while left as i32 <= right as i32{ + let mid = (left + right) / 2; + if nums[mid] < target { + left = mid + 1; + } else if nums[mid] > target { + right = mid - 1; + } else { + return mid as i32; + } + } + -1 + } +} + +# (版本二)左闭右开区间 + +impl Solution { + pub fn search(nums: Vec, target: i32) -> i32 { + let mut left:usize = 0; + let mut right:usize = nums.len(); + while left < right { + let mid = (left + right) / 2; + if nums[mid] < target { + left = mid + 1; + } else if nums[mid] > target { + right = mid; + } else { + return mid as i32; + } + } + -1 + } +} +``` -----------------------