排序——题解汇总

1. 1122. 数组的相对排序

解题思路:

关键点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;
};
桶排序

 

posted @ 2020-09-16 11:11  ccv2  阅读(150)  评论(0编辑  收藏  举报