Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Commit f7d0566

Browse files
Merge pull request youngyangyang04#1650 from Jack-Zhang-1314/patch-2
Update 0034.在排序数组中查找元素的第一个和最后一个位置.md
2 parents 09d3e94 + 954c3a4 commit f7d0566

File tree

1 file changed

+51
-0
lines changed

1 file changed

+51
-0
lines changed

‎problems/0034.在排序数组中查找元素的第一个和最后一个位置.md‎

Lines changed: 51 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -389,6 +389,57 @@ class Solution:
389389
return [leftBorder, rightBorder]
390390
```
391391

392+
### Rust
393+
394+
```rust
395+
396+
impl Solution {
397+
pub fn search_range(nums: Vec<i32>, target: i32) -> Vec<i32> {
398+
let right_border = Solution::get_right_border(&nums, target);
399+
let left_border = Solution::get_left_border(&nums, target);
400+
if right_border == -2 || left_border == -2 {
401+
return vec![-1, -1];
402+
}
403+
if right_border - left_border > 0 {
404+
return vec![left_border, right_border - 1];
405+
}
406+
vec![-1, -1]
407+
}
408+
409+
pub fn get_right_border(nums: &Vec<i32>, target: i32) -> i32 {
410+
let mut left = 0;
411+
let mut right = nums.len();
412+
let mut right_border: i32 = -2;
413+
while left < right {
414+
let mid = (left + right) / 2;
415+
if nums[mid] > target {
416+
right = mid;
417+
} else {
418+
left = mid + 1;
419+
right_border = left as i32;
420+
}
421+
}
422+
right_border as i32
423+
}
424+
425+
pub fn get_left_border(nums: &Vec<i32>, target: i32) -> i32 {
426+
let mut left = 0;
427+
let mut right = nums.len();
428+
let mut left_border: i32 = -2;
429+
while left < right {
430+
let mid = (left + right) / 2;
431+
if nums[mid] >= target {
432+
right = mid;
433+
left_border = right as i32;
434+
} else {
435+
left = mid + 1;
436+
}
437+
}
438+
left_border as i32
439+
}
440+
}
441+
```
442+
392443
### Go
393444

394445
```go

0 commit comments

Comments
(0)

AltStyle によって変換されたページ (->オリジナル) /