File tree 4 files changed +106
-0
lines changed
solution/1300-1399/1331.Rank Transform of an Array
4 files changed +106
-0
lines changed Original file line number Diff line number Diff line change @@ -183,4 +183,46 @@ function arrayRankTransform(arr: number[]): number[] {
183
183
184
184
<!-- solution: end -->
185
185
186
+ <!-- solution: start -->
187
+
188
+ ### 方法二:排序 + 哈希表
189
+
190
+ <!-- tabs: start -->
191
+
192
+ #### TypeScript
193
+
194
+ ``` ts
195
+ function arrayRankTransform(arr : number []): number [] {
196
+ const sorted = [... new Set (arr )].sort ((a , b ) => a - b );
197
+ const map = new Map <number , number >();
198
+ let c = 1 ;
199
+
200
+ for (const x of sorted ) {
201
+ map .set (x , c ++ );
202
+ }
203
+
204
+ return arr .map (x => map .get (x )! );
205
+ }
206
+ ```
207
+
208
+ #### JavaScript
209
+
210
+ ``` js
211
+ function arrayRankTransform (arr ) {
212
+ const sorted = [... new Set (arr)].sort ((a , b ) => a - b);
213
+ const map = new Map ();
214
+ let c = 1 ;
215
+
216
+ for (const x of sorted) {
217
+ map .set (x, c++ );
218
+ }
219
+
220
+ return arr .map (x => map .get (x));
221
+ }
222
+ ```
223
+
224
+ <!-- tabs: end -->
225
+
226
+ <!-- solution: end -->
227
+
186
228
<!-- problem: end -->
Original file line number Diff line number Diff line change @@ -184,4 +184,46 @@ function arrayRankTransform(arr: number[]): number[] {
184
184
185
185
<!-- solution: end -->
186
186
187
+ <!-- solution: start -->
188
+
189
+ ### Solution 2: Sorting + Hash Map
190
+
191
+ <!-- tabs: start -->
192
+
193
+ #### TypeScript
194
+
195
+ ``` ts
196
+ function arrayRankTransform(arr : number []): number [] {
197
+ const sorted = [... new Set (arr )].sort ((a , b ) => a - b );
198
+ const map = new Map <number , number >();
199
+ let c = 1 ;
200
+
201
+ for (const x of sorted ) {
202
+ map .set (x , c ++ );
203
+ }
204
+
205
+ return arr .map (x => map .get (x )! );
206
+ }
207
+ ```
208
+
209
+ #### JavaScript
210
+
211
+ ``` js
212
+ function arrayRankTransform (arr ) {
213
+ const sorted = [... new Set (arr)].sort ((a , b ) => a - b);
214
+ const map = new Map ();
215
+ let c = 1 ;
216
+
217
+ for (const x of sorted) {
218
+ map .set (x, c++ );
219
+ }
220
+
221
+ return arr .map (x => map .get (x));
222
+ }
223
+ ```
224
+
225
+ <!-- tabs: end -->
226
+
227
+ <!-- solution: end -->
228
+
187
229
<!-- problem: end -->
Original file line number Diff line number Diff line change
1
+ function arrayRankTransform ( arr ) {
2
+ const sorted = [ ...new Set ( arr ) ] . sort ( ( a , b ) => a - b ) ;
3
+ const map = new Map ( ) ;
4
+ let c = 1 ;
5
+
6
+ for ( const x of sorted ) {
7
+ map . set ( x , c ++ ) ;
8
+ }
9
+
10
+ return arr . map ( x => map . get ( x ) ) ;
11
+ }
Original file line number Diff line number Diff line change
1
+ function arrayRankTransform ( arr : number [ ] ) : number [ ] {
2
+ const sorted = [ ...new Set ( arr ) ] . sort ( ( a , b ) => a - b ) ;
3
+ const map = new Map < number , number > ( ) ;
4
+ let c = 1 ;
5
+
6
+ for ( const x of sorted ) {
7
+ map . set ( x , c ++ ) ;
8
+ }
9
+
10
+ return arr . map ( x => map . get ( x ) ! ) ;
11
+ }
You can’t perform that action at this time.
0 commit comments