我的js算法爬坑之旅-根据身高重建队列

156 阅读1分钟

第四十天:力扣第406题,根据身高重建队列

地址:leetcode-cn.com/problems/qu…

思路:将people按身高从大到小排序,如果身高一样则将前面高于自己人数小的人放在前面,挨个根据前面高于自己人数插入到res里,因为people已按照身高排序,所以某个人被插入到res里时,所有比他高的都已经在res里了,而身高比他矮的人怎样插入到res里都不影响前面高于他的人数。

var reconstructQueue = function(people) {
    people.sort((a,b) => {
        if(a[0] !== b[0]) {
            return b[0] - a[0];
        } else {
            return a[1] - b[1];
        }
    })
    let res = [];
    for(let i = 0;i < people.length; i++)
    {
        res.splice(people[i][1],0,people[i]);
    }
    return res;
};
执行用时:124 ms, 在所有 JavaScript 提交中击败了38.80%的用户
内存消耗:42.3 MB, 在所有 JavaScript 提交中击败了64.95%的用户