gpt4 book ai didi

javascript - 406(力扣)。按高度重建队列

转载 作者:塔克拉玛干 更新时间:2023-11-03 03:56:42 25 4
gpt4 key购买 nike

问题来了:

https://leetcode.com/problems/queue-reconstruction-by-height/

假设您有一个随机列表,其中包含排队的人。每个人都用一对整数(h,k)来描述,其中h是这个人的高度,k是这个人前面高度大于或等于h的人数。编写一个算法来重建队列。

注意:人数不到1100人。

例子:

Input:
[[7,0], [4,4], [7,1], [5,0], [6,1], [5,2]]

Output:
[[5,0], [7,0], [5,2], [6,1], [4,4], [7,1]]

这是我使用 javascript 的回答:

var reconstructQueue = function(people) {
var result= [];
people.sort((a,b)=>a[1]-b[1]).sort((a,b)=>b[0]-a[0]);
for(var i=0; i<people.length; i++) {
result.splice(people[i][1], 0, people[i]);
}
return result;
};

它可以通过上面的测试,但是为什么它没有通过 Leetcode 中的所有测试?谁能帮帮我?

最佳答案

您应用了两次排序,但它不正确,因为您第一次按 1 索引对队列排序,然后按 0 索引排序。如果 a 和 b 具有相同的高度,则必须对队列进行一次排序并按 1 索引排序,如果它们具有不同的高度,则必须按 0 索引排序您的排序功能将是

people.sort(function(a,b){
if(a[0]==b[0]){
return a[1]-b[1];
}
else{
return b[0]-a[0];
}
});

使用箭头函数

people.sort((a,b)=>a[0]==b[0]?a[1]-b[1]:b[0]-a[0]);

关于javascript - 406(力扣)。按高度重建队列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41653661/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com