【攻克力扣200题--9】347. 前 K 个高频元素_小小布丁--pudding的博客-程序员秘密

技术标签: 力扣攻克200题  

好久真的没这么刺激了!!!这题真的太强了,成功让我为它贡献了将近5个小时~~

function partition(arr,left,right){
    var pivot=arr[left];
    var i=left;
    var j;
    for(j=left+1;j<=right;j++){
        if(arr[j].freq>pivot.freq){//就一个大于号小于号的差别,决定了它是升序“分治”还是降序“分治”。这里排出来是降序。
            i++;
            swap(arr,i,j);
        }
    }
    swap(arr,left,i);
    return i;
}
function swap(arr,i,j){
    if(i==j) return;
    var temp=arr[i];
    arr[i]=arr[j];
    arr[j]=temp;
}

let quickSort = function(arr, left, right, k){
    if(left < right){
        let m = partition(arr, left, right);
        if(m<k-1){
            quickSort(arr, m+1, right, k);
        }else if(m>k-1){
            quickSort(arr, left, m-1, k);
        }
    }   //一开始实在不理解这段,现在才恍然大悟,它没说那k个元素也要排序!!!欧耶耶~~
}
let Node=function (val,freq) {
    this.val=val;
    this.freq=freq;
}
var topKFrequent = function(nums, k) {
    let map={};
    for(var i=0;i<nums.length;i++){
        if(map[nums[i]]) map[nums[i]].freq+=1;
        else map[nums[i]]=new Node(nums[i],1);
    }
    var arr=[];
    for(let x in map) arr.push(map[x]);//将字典对象{1:3,2:2,3:1}转成数组对象[1:3,2:2,3:1],便于后面的操作,仅此而已。
    quickSort(arr, 0, arr.length-1, k);
    var res=[];
    for(var i=0;i<k;i++) res.push(arr[i].val);
    return res;
      
};

 

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/m0_37976836/article/details/102721759

智能推荐

php 的eval解析失败与500 Internal Server Error_l server error) eval_qidizi的博客-程序员秘密

在使用php的eval解析代码时,会出现二种极端的可能.第一种是解析失败,就会导致输出500 Internal Server Error;如果同时这里使用jquery获取响应话,会出现error和success都无法捕捉到内容,在firebug中会看到这个请求是红的;对于这种情况可以使用下面的代码来进行提示,新的php版本好像在这种情况下,并不会输入500 Internal Server Erro

Ubuntu 18.4安装Mysql5.7_A_010001001110的博客-程序员秘密

1.安装Mysqlsudo apt-get install Mysql-serversudo mysql-secure_installation#配置项,1选择N,2填写名为root的数据库密码,3选择N,4选择N,5选择N,6选择Y2.检查数据库状态systemctl status mysql.service#检查数据库状态3.创建数据库Studentcreate databas...

网站流量查询_流量查询入口_寰宇001的博客-程序员秘密

1、http://www.alexa.cn/2)TestinAPP测试:https://www.testin.cn/3)APP Annie:https://www.appannie.com/cn/脑图工具1)百度脑图:http://naotu.baidu.com/2)MindPin:http://www.mindpin.com/3)Mindmanager:(公众号里有)4)XMi...

学而不思者罔,思而不学者殆_吾日三省吾身的太一的博客-程序员秘密

[size=medium]1)遇到问题时候,就凭直觉反应。没有接下来思考,一直处于搜索状态。就像平时遇到问题没有分析思考一下,马上google百度。最近也一直没有思考问题,脑袋变钝了。要是一直吸收知识却不进一步思考,即使有消化,也只是像存储服务器一样,压缩文件。要思考、要思考。孔子说“学而不思者罔,思而不学者殆”。知道但是没放在心上没实践。学习时要思考。时时刻刻在思考。 每天晚上要总结一下。2...

springboot集成mysql、mybatis-plus、shardingsphere-jdbc实现读写分离、水平分表:INTERVAL时间范围分片算法_Meta39的博客-程序员秘密

springboot集成mysql、mybatis-plus、shardingsphere-jdbc实现读写分离、水平分表:INTERVAL时间范围分片算法

ros端口镜像学习_ros 端口镜像_"Blue"的博客-程序员秘密

l3硬件卸载第三层硬件卸载(也称为IP交换或硬件路由)将允许将某些路由器功能卸载到交换芯片上。 这样可以在路由数据包时达到线速,而这在CPU中是根本无法实现的。/interface ethernet switchset switch1 l3hw=yes端口镜像功能及原理:通过端口镜像,可以将“嗅探”到所有通过交换芯片中的所有流量,并将这些数据包的副本发送到另一个端口(镜像目标)镜像目标端口必须属于同一个交换机基于端口镜像/interface ethernet switchset sw

随便推点

计算机专业高级职称证书什么样?_计算机高级证书_毛毛475考证的博客-程序员秘密

软件水平考试(软考)高级证书是否等于高级职称、很多考生都有这样的疑问, 盛泰鼎盛小编已经取得了软考中级或者高级证书,那么我就有了中级或者高级职称。 但事实是不是这样的呢,今天盛泰鼎盛就帮大家答疑解惑软考证书和职称证书之间的关系。盛泰鼎盛首先来看软考证书的意义: 软考,是以考代评,以一个考试来代替提交若干材料的评职称的过程。国人部发 [2003]39 号文,第 11 条明确如此规定:计算机专业技术资格(水平)实施全国统一考试后,不再进行计算机技术与软件相应专业和级别的专业技术职务任职资格评审工作。 此

解决Mnist数据集难以下载问题_mnist.mnist下载换源_Dog coder的博客-程序员秘密

让程序自动下载老是未响应,我们可以自行下载,然后找到.Keras文件夹中的dataset文件,直接把下载的Mnist.npz文件弄到里面。1.科学上网chrome打开https://s3.amazonaws.com/img-datasets/mnist.npz直接自动下载2.找国内的镜像源下载可以用清华的,拉了半天找到了Mnist的下载地方网址鼠标使劲往下拉,就能找到htt...

一个使用C#和ArcPy实现的版本压缩工具(三)_suixhcud的博客-程序员秘密

ArcGIS版本压缩功能设计与开发目录参数的设置和存取使用C#调用Python脚本(带参数)三种模式压缩目录参数的设置和存取上一篇文章中,我们已经将进行压缩等操作的代码写好,并在PyCharm中调试完毕。从代码中可以看出,功能的调用,是需要传入一定的外部参数的。这些参数,我们在C#中进行设置和存取。为此,我们定义了一个类和一些静态变量,用于保存相关参数。 public class ...

Springboot项目javax.validation使用方法详解包含组合bean和list特殊情况无法使用_spring list 校验 无效_Angus博客的博客-程序员秘密

javax.validation 是基于JSR-303标准开发出来的,使用注解方式实现,及其方便,但是这只是一个接口,没有具体实现。Hibernate-Validator是一个hibernate独立的包,可以直接引用,他实现了javax.validation同时有做了扩展,比较强大。SpringBoot在内部集成了hibernate-validation,可以直接使用。常用注解:代码 说明 @Null 被注解的元素必须为null @NotNull 被注解的元素必须...

springboot集成shardingsphere-jdbc之读写分离配置_Husky_jzq的博客-程序员秘密

首先导入相关的pom依赖&lt;dependency&gt; &lt;groupId&gt;org.springframework.boot&lt;/groupId&gt; &lt;artifactId&gt;spring-boot-starter-web&lt;/artifactId&gt; &lt;/dependency&gt; &lt;dependency&gt; &lt;groupId&g

推荐文章

热门文章

相关标签