File tree 4 files changed +116
-0
lines changed
solution/1200-1299/1282.Group the People Given the Group Size They Belong To
4 files changed +116
-0
lines changed Original file line number Diff line number Diff line change @@ -135,6 +135,48 @@ func groupThePeople(groupSizes []int) [][]int {
135
135
}
136
136
```
137
137
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
+
138
180
### ** ...**
139
181
140
182
```
Original file line number Diff line number Diff line change @@ -125,6 +125,48 @@ func groupThePeople(groupSizes []int) [][]int {
125
125
}
126
126
```
127
127
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
+
128
170
### ** ...**
129
171
130
172
```
Original file line number Diff line number Diff line change
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 number Diff line number Diff line change
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
+ }
You can’t perform that action at this time.
0 commit comments