Skip to content

Commit e13d0e8

Browse files
authored
Create 0904_fruit_into_baskets.rs
1 parent 2a07c84 commit e13d0e8

File tree

1 file changed

+28
-0
lines changed

1 file changed

+28
-0
lines changed
Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,28 @@
1+
use std::collections::HashMap;
2+
3+
impl Solution {
4+
pub fn total_fruit(fruits: Vec<i32>) -> i32 {
5+
let mut freqs = HashMap::new();
6+
let mut left = 0;
7+
let mut max_len = 0;
8+
9+
for right in 0..fruits.len() {
10+
*freqs.entry(fruits[right]).or_insert(0) += 1;
11+
12+
while freqs.len() > 2 {
13+
let fruit = fruits[left];
14+
if let Some(count) = freqs.get_mut(&fruit) {
15+
*count -= 1;
16+
if *count == 0 {
17+
freqs.remove(&fruit);
18+
}
19+
}
20+
left += 1;
21+
}
22+
23+
max_len = max_len.max(right - left + 1);
24+
}
25+
26+
max_len as i32
27+
}
28+
}

0 commit comments

Comments
 (0)