Skip to content

Commit dcb76b2

Browse files
committed
feat: add solutions to lc problems: No.2404,2405
- No.2404.Most Frequent Even Element - No.2405.Optimal Partition of String
1 parent 2007b77 commit dcb76b2

File tree

8 files changed

+232
-3
lines changed

8 files changed

+232
-3
lines changed

solution/2400-2499/2404.Most Frequent Even Element/README.md

Lines changed: 49 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -145,13 +145,61 @@ func mostFrequentEven(nums []int) int {
145145
### **TypeScript**
146146

147147
```ts
148+
function mostFrequentEven(nums: number[]): number {
149+
const map = new Map();
150+
for (const num of nums) {
151+
if (num % 2 === 0) {
152+
map.set(num, (map.get(num) ?? 0) + 1);
153+
}
154+
}
155+
if (map.size === 0) {
156+
return -1;
157+
}
148158

159+
let res = 0;
160+
let max = 0;
161+
for (const [k, v] of map.entries()) {
162+
if (v > max || (v == max && k < res)) {
163+
max = v;
164+
res = k;
165+
}
166+
}
167+
return res;
168+
}
149169
```
150170

151-
### **...**
171+
### **Rust**
172+
173+
```rust
174+
use std::collections::HashMap;
175+
impl Solution {
176+
pub fn most_frequent_even(nums: Vec<i32>) -> i32 {
177+
let mut map = HashMap::new();
178+
for &num in nums.iter() {
179+
if num % 2 == 0 {
180+
*map.entry(num).or_insert(0) += 1;
181+
}
182+
}
183+
if map.len() == 0 {
184+
return -1;
185+
}
152186

187+
let mut res = 0;
188+
let mut max = 0;
189+
for (&k, &v) in map.iter() {
190+
if v > max || (v == max && k < res) {
191+
max = v;
192+
res = k;
193+
}
194+
}
195+
res
196+
}
197+
}
153198
```
154199

200+
### **...**
201+
202+
```
155203
156204
```
157205

solution/2400-2499/2404.Most Frequent Even Element/README_EN.md

Lines changed: 49 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -132,13 +132,61 @@ func mostFrequentEven(nums []int) int {
132132
### **TypeScript**
133133

134134
```ts
135+
function mostFrequentEven(nums: number[]): number {
136+
const map = new Map();
137+
for (const num of nums) {
138+
if (num % 2 === 0) {
139+
map.set(num, (map.get(num) ?? 0) + 1);
140+
}
141+
}
142+
if (map.size === 0) {
143+
return -1;
144+
}
135145

146+
let res = 0;
147+
let max = 0;
148+
for (const [k, v] of map.entries()) {
149+
if (v > max || (v == max && k < res)) {
150+
max = v;
151+
res = k;
152+
}
153+
}
154+
return res;
155+
}
136156
```
137157

138-
### **...**
158+
### **Rust**
159+
160+
```rust
161+
use std::collections::HashMap;
162+
impl Solution {
163+
pub fn most_frequent_even(nums: Vec<i32>) -> i32 {
164+
let mut map = HashMap::new();
165+
for &num in nums.iter() {
166+
if num % 2 == 0 {
167+
*map.entry(num).or_insert(0) += 1;
168+
}
169+
}
170+
if map.len() == 0 {
171+
return -1;
172+
}
139173

174+
let mut res = 0;
175+
let mut max = 0;
176+
for (&k, &v) in map.iter() {
177+
if v > max || (v == max && k < res) {
178+
max = v;
179+
res = k;
180+
}
181+
}
182+
res
183+
}
184+
}
140185
```
141186

187+
### **...**
188+
189+
```
142190
143191
```
144192

Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,24 @@
1+
use std::collections::HashMap;
2+
impl Solution {
3+
pub fn most_frequent_even(nums: Vec<i32>) -> i32 {
4+
let mut map = HashMap::new();
5+
for &num in nums.iter() {
6+
if num % 2 == 0 {
7+
*map.entry(num).or_insert(0) += 1;
8+
}
9+
}
10+
if map.len() == 0 {
11+
return -1;
12+
}
13+
14+
let mut res = 0;
15+
let mut max = 0;
16+
for (&k, &v) in map.iter() {
17+
if v > max || (v == max && k < res) {
18+
max = v;
19+
res = k;
20+
}
21+
}
22+
res
23+
}
24+
}
Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
function mostFrequentEven(nums: number[]): number {
2+
const map = new Map();
3+
for (const num of nums) {
4+
if (num % 2 === 0) {
5+
map.set(num, (map.get(num) ?? 0) + 1);
6+
}
7+
}
8+
if (map.size === 0) {
9+
return -1;
10+
}
11+
12+
let res = 0;
13+
let max = 0;
14+
for (const [k, v] of map.entries()) {
15+
if (v > max || (v == max && k < res)) {
16+
max = v;
17+
res = k;
18+
}
19+
}
20+
return res;
21+
}

solution/2400-2499/2405.Optimal Partition of String/README.md

Lines changed: 31 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -199,14 +199,44 @@ func partitionString(s string) int {
199199
### **TypeScript**
200200

201201
```ts
202+
function partitionString(s: string): number {
203+
const set = new Set();
204+
let res = 1;
205+
for (const c of s) {
206+
if (set.has(c)) {
207+
res++;
208+
set.clear();
209+
}
210+
set.add(c);
211+
}
212+
return res;
213+
}
214+
```
202215

216+
### **Rust**
217+
218+
```rust
219+
use std::collections::HashSet;
220+
impl Solution {
221+
pub fn partition_string(s: String) -> i32 {
222+
let mut set = HashSet::new();
223+
let mut res = 1;
224+
for c in s.as_bytes().iter() {
225+
if set.contains(c) {
226+
res += 1;
227+
set.clear();
228+
}
229+
set.insert(c);
230+
}
231+
res
232+
}
233+
}
203234
```
204235

205236
### **...**
206237

207238
```
208239
209-
210240
```
211241

212242
<!-- tabs:end -->

solution/2400-2499/2405.Optimal Partition of String/README_EN.md

Lines changed: 31 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -181,7 +181,38 @@ func partitionString(s string) int {
181181
### **TypeScript**
182182

183183
```ts
184+
function partitionString(s: string): number {
185+
const set = new Set();
186+
let res = 1;
187+
for (const c of s) {
188+
if (set.has(c)) {
189+
res++;
190+
set.clear();
191+
}
192+
set.add(c);
193+
}
194+
return res;
195+
}
196+
```
184197

198+
### **Rust**
199+
200+
```rust
201+
use std::collections::HashSet;
202+
impl Solution {
203+
pub fn partition_string(s: String) -> i32 {
204+
let mut set = HashSet::new();
205+
let mut res = 1;
206+
for c in s.as_bytes().iter() {
207+
if set.contains(c) {
208+
res += 1;
209+
set.clear();
210+
}
211+
set.insert(c);
212+
}
213+
res
214+
}
215+
}
185216
```
186217

187218
### **...**
Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
use std::collections::HashSet;
2+
impl Solution {
3+
pub fn partition_string(s: String) -> i32 {
4+
let mut set = HashSet::new();
5+
let mut res = 1;
6+
for c in s.as_bytes().iter() {
7+
if set.contains(c) {
8+
res += 1;
9+
set.clear();
10+
}
11+
set.insert(c);
12+
}
13+
res
14+
}
15+
}
Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
function partitionString(s: string): number {
2+
const set = new Set();
3+
let res = 1;
4+
for (const c of s) {
5+
if (set.has(c)) {
6+
res++;
7+
set.clear();
8+
}
9+
set.add(c);
10+
}
11+
return res;
12+
}

0 commit comments

Comments
 (0)