Skip to content

Commit 3e49812

Browse files
authored
feat: add rust solution to lc problem: No.3169 (#4560)
No.3169.Count Days Without Meetings
1 parent 7ad3c3b commit 3e49812

File tree

3 files changed

+64
-0
lines changed

3 files changed

+64
-0
lines changed

solution/3100-3199/3169.Count Days Without Meetings/README.md

Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -183,6 +183,29 @@ function countDays(days: number, meetings: number[][]): number {
183183
}
184184
```
185185

186+
#### Rust
187+
188+
```rust
189+
impl Solution {
190+
pub fn count_days(days: i32, mut meetings: Vec<Vec<i32>>) -> i32 {
191+
meetings.sort_by_key(|m| m[0]);
192+
let mut ans = 0;
193+
let mut last = 0;
194+
195+
for e in meetings {
196+
let st = e[0];
197+
let ed = e[1];
198+
if last < st {
199+
ans += st - last - 1;
200+
}
201+
last = last.max(ed);
202+
}
203+
204+
ans + (days - last)
205+
}
206+
}
207+
```
208+
186209
<!-- tabs:end -->
187210

188211
<!-- solution:end -->

solution/3100-3199/3169.Count Days Without Meetings/README_EN.md

Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -181,6 +181,29 @@ function countDays(days: number, meetings: number[][]): number {
181181
}
182182
```
183183

184+
#### Rust
185+
186+
```rust
187+
impl Solution {
188+
pub fn count_days(days: i32, mut meetings: Vec<Vec<i32>>) -> i32 {
189+
meetings.sort_by_key(|m| m[0]);
190+
let mut ans = 0;
191+
let mut last = 0;
192+
193+
for e in meetings {
194+
let st = e[0];
195+
let ed = e[1];
196+
if last < st {
197+
ans += st - last - 1;
198+
}
199+
last = last.max(ed);
200+
}
201+
202+
ans + (days - last)
203+
}
204+
}
205+
```
206+
184207
<!-- tabs:end -->
185208

186209
<!-- solution:end -->
Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
impl Solution {
2+
pub fn count_days(days: i32, mut meetings: Vec<Vec<i32>>) -> i32 {
3+
meetings.sort_by_key(|m| m[0]);
4+
let mut ans = 0;
5+
let mut last = 0;
6+
7+
for e in meetings {
8+
let st = e[0];
9+
let ed = e[1];
10+
if last < st {
11+
ans += st - last - 1;
12+
}
13+
last = last.max(ed);
14+
}
15+
16+
ans + (days - last)
17+
}
18+
}

0 commit comments

Comments
 (0)