【leetcode】1331. 数组序号转换

88 阅读1分钟

leetcode-1331.png

建立映射即可

  • 排序并去重:首先将数组进行排序,得到升序排列的唯一元素。

  • 映射排名:为每个唯一的元素分配一个排名值(从 1 开始递增)。

  • 构建结果:最后遍历原数组,按照每个元素在排序后数组中的排名,构建最终的排名数组。

var arrayRankTransform = function (arr) {
    let sorted = [...new Set(arr)].sort((a, b) => a - b)
    let map = new Map()
    for (let i = 0; i < sorted.length; ++i) {
        map.set(sorted[i], i + 1)
    }
    return arr.map(el => map.get(el))
};