我的js算法爬坑之旅-数组的相对排序

96 阅读1分钟

第三十八天:力扣第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%的用户