File tree 4 files changed +149
-0
lines changed
solution/1600-1699/1640.Check Array Formation Through Concatenation
4 files changed +149
-0
lines changed Original file line number Diff line number Diff line change @@ -188,6 +188,59 @@ var canFormArray = function (arr, pieces) {
188
188
};
189
189
```
190
190
191
+ ### ** TypeScript**
192
+
193
+ ``` ts
194
+ function canFormArray(arr : number [], pieces : number [][]): boolean {
195
+ const n = arr .length ;
196
+ let i = 0 ;
197
+ while (i < n ) {
198
+ const target = arr [i ];
199
+ const items = pieces .find (v => v [0 ] === target );
200
+ if (items == null ) {
201
+ return false ;
202
+ }
203
+ for (const item of items ) {
204
+ if (item !== arr [i ]) {
205
+ return false ;
206
+ }
207
+ i ++ ;
208
+ }
209
+ }
210
+ return true ;
211
+ }
212
+ ```
213
+
214
+ ### ** Rust**
215
+
216
+ ``` rust
217
+ use std :: collections :: HashMap ;
218
+ impl Solution {
219
+ pub fn can_form_array (arr : Vec <i32 >, pieces : Vec <Vec <i32 >>) -> bool {
220
+ let n = arr . len ();
221
+ let mut map = HashMap :: new ();
222
+ for (i , v ) in pieces . iter (). enumerate () {
223
+ map . insert (v [0 ], i );
224
+ }
225
+ let mut i = 0 ;
226
+ while i < n {
227
+ match map . get (& arr [i ]) {
228
+ None => return false ,
229
+ Some (& j ) => {
230
+ for & item in pieces [j ]. iter () {
231
+ if item != arr [i ] {
232
+ return false ;
233
+ }
234
+ i += 1 ;
235
+ }
236
+ }
237
+ }
238
+ }
239
+ true
240
+ }
241
+ }
242
+ ```
243
+
191
244
### ** ...**
192
245
193
246
```
Original file line number Diff line number Diff line change @@ -169,6 +169,59 @@ var canFormArray = function (arr, pieces) {
169
169
};
170
170
```
171
171
172
+ ### ** TypeScript**
173
+
174
+ ``` ts
175
+ function canFormArray(arr : number [], pieces : number [][]): boolean {
176
+ const n = arr .length ;
177
+ let i = 0 ;
178
+ while (i < n ) {
179
+ const target = arr [i ];
180
+ const items = pieces .find (v => v [0 ] === target );
181
+ if (items == null ) {
182
+ return false ;
183
+ }
184
+ for (const item of items ) {
185
+ if (item !== arr [i ]) {
186
+ return false ;
187
+ }
188
+ i ++ ;
189
+ }
190
+ }
191
+ return true ;
192
+ }
193
+ ```
194
+
195
+ ### ** Rust**
196
+
197
+ ``` rust
198
+ use std :: collections :: HashMap ;
199
+ impl Solution {
200
+ pub fn can_form_array (arr : Vec <i32 >, pieces : Vec <Vec <i32 >>) -> bool {
201
+ let n = arr . len ();
202
+ let mut map = HashMap :: new ();
203
+ for (i , v ) in pieces . iter (). enumerate () {
204
+ map . insert (v [0 ], i );
205
+ }
206
+ let mut i = 0 ;
207
+ while i < n {
208
+ match map . get (& arr [i ]) {
209
+ None => return false ,
210
+ Some (& j ) => {
211
+ for & item in pieces [j ]. iter () {
212
+ if item != arr [i ] {
213
+ return false ;
214
+ }
215
+ i += 1 ;
216
+ }
217
+ }
218
+ }
219
+ }
220
+ true
221
+ }
222
+ }
223
+ ```
224
+
172
225
### ** ...**
173
226
174
227
```
Original file line number Diff line number Diff line change
1
+ use std:: collections:: HashMap ;
2
+ impl Solution {
3
+ pub fn can_form_array ( arr : Vec < i32 > , pieces : Vec < Vec < i32 > > ) -> bool {
4
+ let n = arr. len ( ) ;
5
+ let mut map = HashMap :: new ( ) ;
6
+ for ( i, v) in pieces. iter ( ) . enumerate ( ) {
7
+ map. insert ( v[ 0 ] , i) ;
8
+ }
9
+ let mut i = 0 ;
10
+ while i < n {
11
+ match map. get ( & arr[ i] ) {
12
+ None => return false ,
13
+ Some ( & j) => {
14
+ for & item in pieces[ j] . iter ( ) {
15
+ if item != arr[ i] {
16
+ return false ;
17
+ }
18
+ i += 1 ;
19
+ }
20
+ }
21
+ }
22
+ }
23
+ true
24
+ }
25
+ }
Original file line number Diff line number Diff line change
1
+ function canFormArray ( arr : number [ ] , pieces : number [ ] [ ] ) : boolean {
2
+ const n = arr . length ;
3
+ let i = 0 ;
4
+ while ( i < n ) {
5
+ const target = arr [ i ] ;
6
+ const items = pieces . find ( v => v [ 0 ] === target ) ;
7
+ if ( items == null ) {
8
+ return false ;
9
+ }
10
+ for ( const item of items ) {
11
+ if ( item !== arr [ i ] ) {
12
+ return false ;
13
+ }
14
+ i ++ ;
15
+ }
16
+ }
17
+ return true ;
18
+ }
You can’t perform that action at this time.
0 commit comments