Skip to content

Commit e1e03d3

Browse files
committed
feat: add solutions to lc problem: No.1282
No.1282.Group the People Given the Group Size They Belong To
1 parent 9ad6e11 commit e1e03d3

File tree

4 files changed

+116
-0
lines changed

4 files changed

+116
-0
lines changed

solution/1200-1299/1282.Group the People Given the Group Size They Belong To/README.md

+42
Original file line numberDiff line numberDiff line change
@@ -135,6 +135,48 @@ func groupThePeople(groupSizes []int) [][]int {
135135
}
136136
```
137137

138+
### **TypeScript**
139+
140+
```ts
141+
function groupThePeople(groupSizes: number[]): number[][] {
142+
const res = [];
143+
const map = new Map<number, number[]>();
144+
const n = groupSizes.length;
145+
for (let i = 0; i < n; i++) {
146+
const size = groupSizes[i];
147+
map.set(size, [...(map.get(size) ?? []), i]);
148+
const arr = map.get(size);
149+
if (arr.length === size) {
150+
res.push(arr);
151+
map.set(size, []);
152+
}
153+
}
154+
return res;
155+
}
156+
```
157+
158+
### **Rust**
159+
160+
```rust
161+
use std::collections::HashMap;
162+
impl Solution {
163+
pub fn group_the_people(group_sizes: Vec<i32>) -> Vec<Vec<i32>> {
164+
let mut res = vec![];
165+
let mut map = HashMap::new();
166+
for i in 0..group_sizes.len() {
167+
let size = group_sizes[i] as usize;
168+
let arr = map.entry(size).or_insert(vec![]);
169+
arr.push(i as i32);
170+
if arr.len() == size {
171+
res.push(arr.clone());
172+
arr.clear();
173+
}
174+
}
175+
res
176+
}
177+
}
178+
```
179+
138180
### **...**
139181

140182
```

solution/1200-1299/1282.Group the People Given the Group Size They Belong To/README_EN.md

+42
Original file line numberDiff line numberDiff line change
@@ -125,6 +125,48 @@ func groupThePeople(groupSizes []int) [][]int {
125125
}
126126
```
127127

128+
### **TypeScript**
129+
130+
```ts
131+
function groupThePeople(groupSizes: number[]): number[][] {
132+
const res = [];
133+
const map = new Map<number, number[]>();
134+
const n = groupSizes.length;
135+
for (let i = 0; i < n; i++) {
136+
const size = groupSizes[i];
137+
map.set(size, [...(map.get(size) ?? []), i]);
138+
const arr = map.get(size);
139+
if (arr.length === size) {
140+
res.push(arr);
141+
map.set(size, []);
142+
}
143+
}
144+
return res;
145+
}
146+
```
147+
148+
### **Rust**
149+
150+
```rust
151+
use std::collections::HashMap;
152+
impl Solution {
153+
pub fn group_the_people(group_sizes: Vec<i32>) -> Vec<Vec<i32>> {
154+
let mut res = vec![];
155+
let mut map = HashMap::new();
156+
for i in 0..group_sizes.len() {
157+
let size = group_sizes[i] as usize;
158+
let arr = map.entry(size).or_insert(vec![]);
159+
arr.push(i as i32);
160+
if arr.len() == size {
161+
res.push(arr.clone());
162+
arr.clear();
163+
}
164+
}
165+
res
166+
}
167+
}
168+
```
169+
128170
### **...**
129171

130172
```
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
use std::collections::HashMap;
2+
impl Solution {
3+
pub fn group_the_people(group_sizes: Vec<i32>) -> Vec<Vec<i32>> {
4+
let mut res = vec![];
5+
let mut map = HashMap::new();
6+
for i in 0..group_sizes.len() {
7+
let size = group_sizes[i] as usize;
8+
let arr = map.entry(size).or_insert(vec![]);
9+
arr.push(i as i32);
10+
if arr.len() == size {
11+
res.push(arr.clone());
12+
arr.clear();
13+
}
14+
}
15+
res
16+
}
17+
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
function groupThePeople(groupSizes: number[]): number[][] {
2+
const res = [];
3+
const map = new Map<number, number[]>();
4+
const n = groupSizes.length;
5+
for (let i = 0; i < n; i++) {
6+
const size = groupSizes[i];
7+
map.set(size, [...(map.get(size) ?? []), i]);
8+
const arr = map.get(size);
9+
if (arr.length === size) {
10+
res.push(arr);
11+
map.set(size, []);
12+
}
13+
}
14+
return res;
15+
}

0 commit comments

Comments
 (0)