解题思路:
关键点1:桶排序
var relativeSortArray = function(arr1, arr2) { var nums = new Array(1001).fill(0); var res = []; // 统计每个元素的数量, 桶排序 for(var item of arr1){ if(nums[item]){ nums[item]++; }else{ nums[item]=1; } } // 把arr2 数组中存在的元素全部放到res中 for(var item of arr2){ while(nums[item]){ res.push(item); nums[item]--; } } // 把arr1中不是arr2的元素按照桶的顺序push到数组中 for(var i=0;i<nums.length;i++){ while(nums[i]){ res.push(i); nums[i]--; } } return res; };