Skip to content

Commit feac470

Browse files
authored
feat: add solutions to lc problem: No.1331 (#3595)
1 parent 452cd4c commit feac470

File tree

4 files changed

+106
-0
lines changed

4 files changed

+106
-0
lines changed

solution/1300-1399/1331.Rank Transform of an Array/README.md

+42
Original file line numberDiff line numberDiff line change
@@ -183,4 +183,46 @@ function arrayRankTransform(arr: number[]): number[] {
183183

184184
<!-- solution:end -->
185185

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+
186228
<!-- problem:end -->

solution/1300-1399/1331.Rank Transform of an Array/README_EN.md

+42
Original file line numberDiff line numberDiff line change
@@ -184,4 +184,46 @@ function arrayRankTransform(arr: number[]): number[] {
184184

185185
<!-- solution:end -->
186186

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+
187229
<!-- problem:end -->
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
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 numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
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+
}

0 commit comments

Comments
 (0)