【leetcode】347. Top K Frequent Elements

来源:互联网 发布:centos 修改ssh端口号 编辑:程序博客网 时间:2024/05/16 04:58
  1. Top K Frequent Elements

Given a non-empty array of integers, return the k most frequent elements.

For example,
Given [1,1,1,2,2,3] and k = 2, return [1,2].

这个办法是先哈希,再排序,等过段时间实现小根堆的算法。

/** * @param {number[]} nums * @param {number} k * @return {number[]} */var topKFrequent = function(nums, k) {    //hash来整理数字    var sv = {};    var ll = nums.length;    for(var i=0;i<ll;i++){        if(typeof(sv[nums[i]])==="undefined"){            sv[nums[i]]=1;        }else{            sv[nums[i]]+=1;        }    }    var arr = [];    for(var key in sv){        var obj = {};        obj.num = key;        obj.count = sv[key];        arr.push(obj);    }    //利用大根堆排序    var cmp=function(a,b){        return a.count> b.count? - 1:1;    }    arr.sort(cmp);    var res=[];    for(i=0;i<k;i++){        res.push(parseInt(arr[i].num));    }    return res;};
0 0
原创粉丝点击