Skip to content

Commit 0a9265b

Browse files
authored
feat: add rust solution to lc problem: No.0287 (#1648)
1 parent a40291f commit 0a9265b

File tree

3 files changed

+76
-0
lines changed

3 files changed

+76
-0
lines changed

solution/0200-0299/0287.Find the Duplicate Number/README.md

+27
Original file line numberDiff line numberDiff line change
@@ -126,6 +126,33 @@ public:
126126
};
127127
```
128128
129+
### **Rust**
130+
131+
```rust
132+
impl Solution {
133+
#[allow(dead_code)]
134+
pub fn find_duplicate(nums: Vec<i32>) -> i32 {
135+
let mut left = 0;
136+
let mut right = nums.len() - 1;
137+
138+
while left < right {
139+
let mid = (left + right) >> 1;
140+
let cnt = nums
141+
.iter()
142+
.filter(|x| **x <= mid as i32)
143+
.count();
144+
if cnt > mid {
145+
right = mid;
146+
} else {
147+
left = mid + 1;
148+
}
149+
}
150+
151+
left as i32
152+
}
153+
}
154+
```
155+
129156
### **Go**
130157

131158
```go

solution/0200-0299/0287.Find the Duplicate Number/README_EN.md

+27
Original file line numberDiff line numberDiff line change
@@ -107,6 +107,33 @@ public:
107107
};
108108
```
109109
110+
### **Rust**
111+
112+
```rust
113+
impl Solution {
114+
#[allow(dead_code)]
115+
pub fn find_duplicate(nums: Vec<i32>) -> i32 {
116+
let mut left = 0;
117+
let mut right = nums.len() - 1;
118+
119+
while left < right {
120+
let mid = (left + right) >> 1;
121+
let cnt = nums
122+
.iter()
123+
.filter(|x| **x <= mid as i32)
124+
.count();
125+
if cnt > mid {
126+
right = mid;
127+
} else {
128+
left = mid + 1;
129+
}
130+
}
131+
132+
left as i32
133+
}
134+
}
135+
```
136+
110137
### **Go**
111138

112139
```go
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,22 @@
1+
impl Solution {
2+
#[allow(dead_code)]
3+
pub fn find_duplicate(nums: Vec<i32>) -> i32 {
4+
let mut left = 0;
5+
let mut right = nums.len() - 1;
6+
7+
while left < right {
8+
let mid = (left + right) >> 1;
9+
let cnt = nums
10+
.iter()
11+
.filter(|x| **x <= mid as i32)
12+
.count();
13+
if cnt > mid {
14+
right = mid;
15+
} else {
16+
left = mid + 1;
17+
}
18+
}
19+
20+
left as i32
21+
}
22+
}

0 commit comments

Comments
 (0)