Skip to content

Commit 29a3850

Browse files
committed
feat: add rust solution to lc problem: No.0540
No.0540.Single Element in a Sorted Array
1 parent b91aa14 commit 29a3850

File tree

3 files changed

+55
-0
lines changed

3 files changed

+55
-0
lines changed

solution/0500-0599/0540.Single Element in a Sorted Array/README.md

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -125,6 +125,26 @@ func singleNonDuplicate(nums []int) int {
125125
}
126126
```
127127

128+
### **Rust**
129+
130+
```rust
131+
impl Solution {
132+
pub fn single_non_duplicate(nums: Vec<i32>) -> i32 {
133+
let mut l = 0;
134+
let mut r = nums.len() - 1;
135+
while l < r {
136+
let mid = l + r >> 1;
137+
if nums[mid] == nums[mid ^ 1] {
138+
l = mid + 1;
139+
} else {
140+
r = mid;
141+
}
142+
}
143+
nums[l]
144+
}
145+
}
146+
```
147+
128148
### **...**
129149

130150
```

solution/0500-0599/0540.Single Element in a Sorted Array/README_EN.md

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -128,6 +128,26 @@ func singleNonDuplicate(nums []int) int {
128128
}
129129
```
130130

131+
### **Rust**
132+
133+
```rust
134+
impl Solution {
135+
pub fn single_non_duplicate(nums: Vec<i32>) -> i32 {
136+
let mut l = 0;
137+
let mut r = nums.len() - 1;
138+
while l < r {
139+
let mid = l + r >> 1;
140+
if nums[mid] == nums[mid ^ 1] {
141+
l = mid + 1;
142+
} else {
143+
r = mid;
144+
}
145+
}
146+
nums[l]
147+
}
148+
}
149+
```
150+
131151
### **...**
132152

133153
```
Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
impl Solution {
2+
pub fn single_non_duplicate(nums: Vec<i32>) -> i32 {
3+
let mut l = 0;
4+
let mut r = nums.len() - 1;
5+
while l < r {
6+
let mid = l + r >> 1;
7+
if nums[mid] == nums[mid ^ 1] {
8+
l = mid + 1;
9+
} else {
10+
r = mid;
11+
}
12+
}
13+
nums[l]
14+
}
15+
}

0 commit comments

Comments
 (0)