File tree Expand file tree Collapse file tree 4 files changed +143
-0
lines changed
solution/0500-0599/0599.Minimum Index Sum of Two Lists Expand file tree Collapse file tree 4 files changed +143
-0
lines changed Original file line number Diff line number Diff line change @@ -162,6 +162,57 @@ func findRestaurant(list1 []string, list2 []string) []string {
162
162
}
163
163
```
164
164
165
+ ### ** TypeScript**
166
+
167
+ ``` ts
168
+ function findRestaurant(list1 : string [], list2 : string []): string [] {
169
+ let minI = Infinity ;
170
+ const res = [];
171
+ const map = new Map <string , number >(list1 .map ((s , i ) => [s , i ]));
172
+ list2 .forEach ((s , i ) => {
173
+ if (map .has (s )) {
174
+ const sumI = i + map .get (s );
175
+ if (sumI <= minI ) {
176
+ if (sumI < minI ) {
177
+ minI = sumI ;
178
+ res .length = 0 ;
179
+ }
180
+ res .push (s );
181
+ }
182
+ }
183
+ });
184
+ return res ;
185
+ }
186
+ ```
187
+
188
+ ### ** Rust**
189
+
190
+ ``` rust
191
+ use std :: collections :: HashMap ;
192
+ use std :: iter :: FromIterator ;
193
+
194
+ impl Solution {
195
+ pub fn find_restaurant (list1 : Vec <String >, list2 : Vec <String >) -> Vec <String > {
196
+ let map : HashMap <String , usize > = HashMap :: from_iter (list1 . into_iter (). zip (0 .. ));
197
+ let mut res = vec! [];
198
+ let mut min_i = usize :: MAX ;
199
+ list2 . into_iter (). enumerate (). for_each (| (i , key )| {
200
+ if map . contains_key (& key ) {
201
+ let sum_i = map . get (& key ). unwrap () + i ;
202
+ if sum_i <= min_i {
203
+ if (sum_i < min_i ) {
204
+ min_i = sum_i ;
205
+ res . clear ();
206
+ }
207
+ res . push (key );
208
+ }
209
+ }
210
+ });
211
+ res
212
+ }
213
+ }
214
+ ```
215
+
165
216
### ** ...**
166
217
167
218
```
Original file line number Diff line number Diff line change @@ -146,6 +146,57 @@ func findRestaurant(list1 []string, list2 []string) []string {
146
146
}
147
147
```
148
148
149
+ ### ** TypeScript**
150
+
151
+ ``` ts
152
+ function findRestaurant(list1 : string [], list2 : string []): string [] {
153
+ let minI = Infinity ;
154
+ const res = [];
155
+ const map = new Map <string , number >(list1 .map ((s , i ) => [s , i ]));
156
+ list2 .forEach ((s , i ) => {
157
+ if (map .has (s )) {
158
+ const sumI = i + map .get (s );
159
+ if (sumI <= minI ) {
160
+ if (sumI < minI ) {
161
+ minI = sumI ;
162
+ res .length = 0 ;
163
+ }
164
+ res .push (s );
165
+ }
166
+ }
167
+ });
168
+ return res ;
169
+ }
170
+ ```
171
+
172
+ ### ** Rust**
173
+
174
+ ``` rust
175
+ use std :: collections :: HashMap ;
176
+ use std :: iter :: FromIterator ;
177
+
178
+ impl Solution {
179
+ pub fn find_restaurant (list1 : Vec <String >, list2 : Vec <String >) -> Vec <String > {
180
+ let map : HashMap <String , usize > = HashMap :: from_iter (list1 . into_iter (). zip (0 .. ));
181
+ let mut res = vec! [];
182
+ let mut min_i = usize :: MAX ;
183
+ list2 . into_iter (). enumerate (). for_each (| (i , key )| {
184
+ if map . contains_key (& key ) {
185
+ let sum_i = map . get (& key ). unwrap () + i ;
186
+ if sum_i <= min_i {
187
+ if (sum_i < min_i ) {
188
+ min_i = sum_i ;
189
+ res . clear ();
190
+ }
191
+ res . push (key );
192
+ }
193
+ }
194
+ });
195
+ res
196
+ }
197
+ }
198
+ ```
199
+
149
200
### ** ...**
150
201
151
202
```
Original file line number Diff line number Diff line change
1
+ use std:: collections:: HashMap ;
2
+ use std:: iter:: FromIterator ;
3
+
4
+ impl Solution {
5
+ pub fn find_restaurant ( list1 : Vec < String > , list2 : Vec < String > ) -> Vec < String > {
6
+ let map: HashMap < String , usize > = HashMap :: from_iter ( list1. into_iter ( ) . zip ( 0 ..) ) ;
7
+ let mut res = vec ! [ ] ;
8
+ let mut min_i = usize:: MAX ;
9
+ list2. into_iter ( ) . enumerate ( ) . for_each ( |( i, key) | {
10
+ if map. contains_key ( & key) {
11
+ let sum_i = map. get ( & key) . unwrap ( ) + i;
12
+ if sum_i <= min_i {
13
+ if ( sum_i < min_i) {
14
+ min_i = sum_i;
15
+ res. clear ( ) ;
16
+ }
17
+ res. push ( key) ;
18
+ }
19
+ }
20
+ } ) ;
21
+ res
22
+ }
23
+ }
Original file line number Diff line number Diff line change
1
+ function findRestaurant ( list1 : string [ ] , list2 : string [ ] ) : string [ ] {
2
+ let minI = Infinity ;
3
+ const res = [ ] ;
4
+ const map = new Map < string , number > ( list1 . map ( ( s , i ) => [ s , i ] ) ) ;
5
+ list2 . forEach ( ( s , i ) => {
6
+ if ( map . has ( s ) ) {
7
+ const sumI = i + map . get ( s ) ;
8
+ if ( sumI <= minI ) {
9
+ if ( sumI < minI ) {
10
+ minI = sumI ;
11
+ res . length = 0 ;
12
+ }
13
+ res . push ( s ) ;
14
+ }
15
+ }
16
+ } ) ;
17
+ return res ;
18
+ }
You can’t perform that action at this time.
0 commit comments