File tree 2 files changed +41
-1
lines changed
2 files changed +41
-1
lines changed Original file line number Diff line number Diff line change 299
299
| 1108 | [ Defanging an IP Address] ( https://leetcode.com/problems/defanging-an-ip-address ) | [ ![ Java] ( assets/java.png )] ( src/DefangingAnIPAddress.java ) | |
300
300
| 1118 | 🔒 [ Number of Days in a Month] ( https://leetcode.com/problems/number-of-days-in-a-month ) | | |
301
301
| 1119 | 🔒 [ Remove Vowels From String] ( https://leetcode.com/problems/remove-vowels-from-a-string ) | | |
302
- | 1122 | [ Relative Sort Array] ( https://leetcode.com/problems/relative-sort-array ) | | |
302
+ | 1122 | [ Relative Sort Array] ( https://leetcode.com/problems/relative-sort-array ) | [ ![ Java ] ( assets/java.png )] ( src/RelativeSortArray.java ) | |
303
303
| 1128 | [ Number of Equivalent Domino Pairs] ( https://leetcode.com/problems/number-of-equivalent-domino-pairs ) | [ ![ Java] ( assets/java.png )] ( src/NumberOfEquivalentDominoPairs.java ) | |
304
304
| 1133 | 🔒 [ Largest Unique Number] ( https://leetcode.com/problems/largest-unique-number ) | | |
305
305
| 1134 | 🔒 [ Armstrong Number] ( https://leetcode.com/problems/armstrong-number ) | | |
Original file line number Diff line number Diff line change
1
+ import java .util .Arrays ;
2
+ import java .util .HashMap ;
3
+ import java .util .Map ;
4
+
5
+ public class RelativeSortArray {
6
+ public int [] relativeSortArray (int [] arr1 , int [] arr2 ) {
7
+ final Map <Integer ,Integer > elementWeight = new HashMap <>();
8
+ for (int i = 0 ; i < arr2 .length ; i ++) elementWeight .put (arr2 [i ], i );
9
+ Integer [] array = arrayFrom (arr1 );
10
+ Arrays .sort (array , (o1 , o2 ) -> {
11
+ if (elementWeight .containsKey (o1 ) && elementWeight .containsKey (o2 )) {
12
+ return elementWeight .get (o1 ) - elementWeight .get (o2 );
13
+ }
14
+ if (elementWeight .containsKey (o1 )) {
15
+ return -1 ;
16
+ }
17
+ if (elementWeight .containsKey (o2 )) {
18
+ return 1 ;
19
+ }
20
+ return Integer .compare (o1 , o2 );
21
+ });
22
+ return toIntArray (array );
23
+ }
24
+
25
+ private Integer [] arrayFrom (int [] array ) {
26
+ Integer [] result = new Integer [array .length ];
27
+ for (int index = 0 ; index < array .length ; index ++) {
28
+ result [index ] = array [index ];
29
+ }
30
+ return result ;
31
+ }
32
+
33
+ private int [] toIntArray (Integer [] array ) {
34
+ int [] result = new int [array .length ];
35
+ for (int index = 0 ; index < array .length ; index ++) {
36
+ result [index ] = array [index ];
37
+ }
38
+ return result ;
39
+ }
40
+ }
You can’t perform that action at this time.
0 commit comments