LeeCode-刷题日记-Day34
451. 根据字符出现频率排序
思路:将所有字符与出现次数绑定到哈希表,再将哈希表按出现次数排序
最后,按顺序将其放入字符串中
/**
* @param {string} s
* @return {string}
*/
var frequencySort = function(s) {
let res=new Map();
for(let i=0;i<s.length;i++){
res.set(s[i],res.has(s[i])?res.get(s[i])+1:1);
}
let arr=Array.from(res).sort((a,b)=>{return b[1]-a[1]});
let r='';
for(let i of arr){
for(let j=0;j<i[1];j++){
r+=i[0];
}
}
return r;
};
973. 最接近原点的 K 个点
思路:将每个点的距离与节点绑定,再按照距离进行升序排序。
最后将前k个节点放入结果数组中。
/**
* @param {number[][]} points
* @param {number} k
* @return {number[][]}
*/
var kClosest = function(points, k) {
let map=new Map()
for(let num of points){
let dis=Math.sqrt(Math.pow(num[0],2)+Math.pow(num[1],2));
map.set(num,dis);
}
let arr=Array.from(map).sort((a,b)=>{return a[1]-b[1]});
let res=[];
for(let i=0;i<k;i++){
res.push(arr[i][0])
}
return res;
};
- 本文链接:https://archer-lan.github.io/2023/11/20/LeeCode-%E5%88%B7%E9%A2%98%E6%97%A5%E8%AE%B0-Day34/
- 版权声明:本博客所有文章除特别声明外,均默认采用 许可协议。