diff --git a/solution/1300-1399/1331.Rank Transform of an Array/README.md b/solution/1300-1399/1331.Rank Transform of an Array/README.md index 6b31f108e0dca..03489343837b7 100644 --- a/solution/1300-1399/1331.Rank Transform of an Array/README.md +++ b/solution/1300-1399/1331.Rank Transform of an Array/README.md @@ -183,4 +183,46 @@ function arrayRankTransform(arr: number[]): number[] { + + +### 方法二:排序 + 哈希表 + + + +#### TypeScript + +```ts +function arrayRankTransform(arr: number[]): number[] { + const sorted = [...new Set(arr)].sort((a, b) => a - b); + const map = new Map(); + let c = 1; + + for (const x of sorted) { + map.set(x, c++); + } + + return arr.map(x => map.get(x)!); +} +``` + +#### JavaScript + +```js +function arrayRankTransform(arr) { + const sorted = [...new Set(arr)].sort((a, b) => a - b); + const map = new Map(); + let c = 1; + + for (const x of sorted) { + map.set(x, c++); + } + + return arr.map(x => map.get(x)); +} +``` + + + + + diff --git a/solution/1300-1399/1331.Rank Transform of an Array/README_EN.md b/solution/1300-1399/1331.Rank Transform of an Array/README_EN.md index 0282e806357e5..3fbbc0693d6de 100644 --- a/solution/1300-1399/1331.Rank Transform of an Array/README_EN.md +++ b/solution/1300-1399/1331.Rank Transform of an Array/README_EN.md @@ -184,4 +184,46 @@ function arrayRankTransform(arr: number[]): number[] { + + +### Solution 2: Sorting + Hash Map + + + +#### TypeScript + +```ts +function arrayRankTransform(arr: number[]): number[] { + const sorted = [...new Set(arr)].sort((a, b) => a - b); + const map = new Map(); + let c = 1; + + for (const x of sorted) { + map.set(x, c++); + } + + return arr.map(x => map.get(x)!); +} +``` + +#### JavaScript + +```js +function arrayRankTransform(arr) { + const sorted = [...new Set(arr)].sort((a, b) => a - b); + const map = new Map(); + let c = 1; + + for (const x of sorted) { + map.set(x, c++); + } + + return arr.map(x => map.get(x)); +} +``` + + + + + diff --git a/solution/1300-1399/1331.Rank Transform of an Array/Solution2.js b/solution/1300-1399/1331.Rank Transform of an Array/Solution2.js new file mode 100644 index 0000000000000..53ee813df2dac --- /dev/null +++ b/solution/1300-1399/1331.Rank Transform of an Array/Solution2.js @@ -0,0 +1,11 @@ +function arrayRankTransform(arr) { + const sorted = [...new Set(arr)].sort((a, b) => a - b); + const map = new Map(); + let c = 1; + + for (const x of sorted) { + map.set(x, c++); + } + + return arr.map(x => map.get(x)); +} diff --git a/solution/1300-1399/1331.Rank Transform of an Array/Solution2.ts b/solution/1300-1399/1331.Rank Transform of an Array/Solution2.ts new file mode 100644 index 0000000000000..606ff4cf26c9c --- /dev/null +++ b/solution/1300-1399/1331.Rank Transform of an Array/Solution2.ts @@ -0,0 +1,11 @@ +function arrayRankTransform(arr: number[]): number[] { + const sorted = [...new Set(arr)].sort((a, b) => a - b); + const map = new Map(); + let c = 1; + + for (const x of sorted) { + map.set(x, c++); + } + + return arr.map(x => map.get(x)!); +}