第三十八天:力扣第1122题,数组的相对排序
地址:leetcode-cn.com/problems/re…
思路:因为要对最后没有的进行排序,所以我们先排序,然后从后往前索引arr2中的元素在arr1中的位置,删除arr1中该元素,再unshift添加到arr1前面就行了。
var relativeSortArray = function(arr1, arr2) {
let n = 0;
arr1.sort((a,b) => a - b);
for(let i = arr2.length - 1; i >= 0; i--)
{
while(arr1.indexOf(arr2[i]) !== -1)
{
n += 1;
arr1.splice(arr1.indexOf(arr2[i]),1);
}
while(n !== 0)
{
arr1.unshift(arr2[i]);
n--;
}
}
return arr1;
};
执行用时:80 ms, 在所有 JavaScript 提交中击败了94.97%的用户
内存消耗:37.7 MB, 在所有 JavaScript 提交中击败了58.12%的用户