Skip to content

Commit cd7287c

Browse files
committed
add solution of no.1331
1 parent 16b47e3 commit cd7287c

2 files changed

Lines changed: 29 additions & 32 deletions

File tree

javascript/LeetCode/Array/1331.js

Lines changed: 29 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,29 @@
1+
/**
2+
* 1331. Rank Transform of an Array
3+
*
4+
* 依照每個元素在陣列中的排名來回傳,須維持原樣
5+
* 排序從1開始,若元素一樣則排名一樣
6+
* 最小的元素 = 1,最大的則為陣列長度
7+
*
8+
* @param {number[]} arr
9+
* @return {number[]}
10+
*/
11+
var arrayRankTransform = function(arr) {
12+
const sortedRank = [...arr].sort((a,b) => a - b);
13+
let minRank = 1;
14+
let map = new Map();
15+
for(let i = 0; i < sortedRank.length;++i) {
16+
if(!map.has(sortedRank[i])){
17+
map.set(sortedRank[i],minRank++);
18+
}
19+
}
20+
for(let i = 0;i < arr.length;++i) {
21+
arr[i] = map.get(arr[i]);
22+
}
23+
return arr;
24+
};
25+
// let arr = [40,10,20,30];
26+
// [4,1,2,3]
27+
let arr = [37,12,28,9,100,56,80,5,12];
28+
// [5,3,4,2,8,6,7,1,3]
29+
console.log(arrayRankTransform(arr))

javascript/index.js

Lines changed: 0 additions & 32 deletions
Original file line numberDiff line numberDiff line change
@@ -1288,35 +1288,3 @@ let s = "010";
12881288
// Explanation: Because there is just one '1', it must be in the last position. So the answer is "001".
12891289
// console.log(maximumOddBinaryNumber(s));
12901290

1291-
/**
1292-
* 1331. Rank Transform of an Array
1293-
*
1294-
* 依照每個元素在陣列中的排名來回傳,須維持原樣
1295-
* 排序從1開始,若元素一樣則排名一樣
1296-
* 最小的元素 = 1,最大的則為陣列長度
1297-
*
1298-
* @param {number[]} arr
1299-
* @return {number[]}
1300-
*/
1301-
var arrayRankTransform = function(arr) {
1302-
let result = [];
1303-
let maxRank = arr.length;
1304-
let map = new Map();
1305-
for(let i = 0; i < arr.length;++i) {
1306-
if(!map.has(arr[i])){
1307-
map.set(arr[i],maxRank--);
1308-
}
1309-
}
1310-
let sortedRank = arr.sort((a,b) => b - a);
1311-
console.log(sortedRank)
1312-
for(let i = 0;i < sortedRank.length;++i) {
1313-
result[i]= map.get(arr[i]);
1314-
}
1315-
console.log(result)
1316-
1317-
};
1318-
// let arr = [40,10,20,30];
1319-
// [4,1,2,3]
1320-
let arr = [37,12,28,9,100,56,80,5,12];
1321-
// [5,3,4,2,8,6,7,1,3]
1322-
console.log(arrayRankTransform(arr))

0 commit comments

Comments
 (0)