Leetcode--347. 前k个高频元素

给定一个非空的整数数组,返回其中出现频率前 k 高的元素。

示例 1:

输入: nums = [1,1,1,2,2,3], k = 2
输出: [1,2]
示例 2:

输入: nums = [1], k = 1
输出: [1]
说明:

你可以假设给定的 k 总是合理的,且 1 ≤ k ≤ 数组中不相同的元素的个数。
你的算法的时间复杂度必须优于 O(n log n) , n 是数组的大小。

思路:把数字与对应的个数存入哈希表,排序

提交的代码:

class Solution {

    public static List<Integer> topKFrequent(int[] nums, int k) {

        Map<Integer,Integer> map = new HashMap<>();

        List<Integer> result = new ArrayList<Integer>();

        for(int i=0;i<nums.length;i++)

        {

            if(map.containsKey(nums[i]))

            {

                map.put(nums[i], map.get(nums[i])+1);

            }

            else

            {

                map.put(nums[i], 1);

            }

        }

        List<Map.Entry<Integer, Integer>> entryList = new ArrayList<Map.Entry<Integer, Integer>>(map.entrySet());

        Collections.sort(entryList, mapComparator);

        int j = 0;

        for (Map.Entry<Integer, Integer> entry : entryList) {

            if (j >= k) {

                break;

            }

            result.add(entry.getKey());

            j++;

        }

        return result;

    }

    static Comparator<Map.Entry<Integer, Integer>> mapComparator = new Comparator<Map.Entry<Integer, Integer>>() {

        @Override

        public int compare(Map.Entry<Integer, Integer> item1, Map.Entry<Integer, Integer> item2) {

            return item2.getValue() - item1.getValue();

        }

    };

}

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/485452.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Java泛型用于方法,类和接口

什么是泛型&#xff1f; 型就是数据类型参数化。就是说原本定死的数据类型像方法中的形参一样&#xff0c;数据是不确定的&#xff0c;使用的时候由人传进去&#xff0c;泛型就是这样&#xff0c;数据类型不确定了。使用的时候再确定就可以了。 泛型的特点 是JDK1.5的新特性泛型…

人机融合的科幻与现实

来源&#xff1a;《环球》杂志 发布时间&#xff1a;2017-04-24随着光机电一体化、生物工程、生化机器人的发展和系统科学的综合进步&#xff0c;计算机自主的逻辑思维将有足够的行为表现&#xff0c;进而真正脱离人类的完全控制&#xff0c;拥有自主的智能思维。几乎可以预见&…

js读取服务器上的txt文件,javascript – 每15秒读取一次文本文件的内容

您可以在函数中重复执行要执行的代码,并在setTimeout中传递该函数.setTimeout的第二个参数将以毫秒为单位.在这里使用setTimeout IMO在这里更合适,因为它将排除发送请求和接收响应所花费的时间.它将在收到响应后每5秒发送一次请求.$(document).ready(function() {function func…

Leetcode--128. 最长连续序列

给定一个未排序的整数数组&#xff0c;找出最长连续序列的长度。 要求算法的时间复杂度为 O(n)。 示例: 输入: [100, 4, 200, 1, 3, 2] 输出: 4 解释: 最长连续序列是 [1, 2, 3, 4]。它的长度为 4。 思路:存入map中&#xff0c;每次以当前元素为序列的第一个数字&#xff0…

Opencv级联分类器实现人脸识别

在本章中&#xff0c;我们将学习如何使用OpenCV使用系统相机捕获帧。org.opencv.videoio包的VideoCapture类包含使用相机捕获视频的类和方法。让我们一步一步学习如何捕捉帧 - 第1步&#xff1a;加载OpenCV本机库 在使用OpenCV库编写Java代码时&#xff0c;您需要做的第一步是使…

服务器的防火墙禁止了对指定通讯端口的访问,使用iptables限制访问网站指定端口...

Linux用得比较少&#xff0c;所以对iptables也不是很熟悉&#xff0c;最近部署网站&#xff0c;因为对外的80端口是通过nginx转发&#xff0c;而内部程序都是类似8080、3000之类的端口&#xff0c;不做处理的情况下&#xff0c;很可能会看到如:地址www.poorren.com、地址www.po…

RISC-V正在成为芯片世界中的Linux

来源&#xff1a;科技大本营芯片是信息技术的引擎&#xff0c;推动着人类社会的数字化、信息化与智能化。随着摩尔定律濒临终结&#xff0c;维持芯片技术创新面临挑战。开源芯片设计将是应对挑战的新思路。如今芯片设计动辄需要上亿研发费用、投入上百人&#xff0c;只有少数企…

细胞核起源于病毒?

撰文&#xff1a;Christie Wilcox来源&#xff1a;环球科学&#xff08;ID: huanqiukexue&#xff09;翻译&#xff1a;郑宸编辑&#xff1a;杨心舟细胞中&#xff0c;一个“病毒工厂”&#xff08;图中左侧大而圆的结构&#xff09;被其生产出来的新病毒颗粒&#xff08;若干小…

css3 固定,CSS3 calc()不适用于固定位置/绝对位置

编辑2&#xff1a;这是版本的Webkit浏览器(如询问意见)&#xff0c;与最新的Chrome测试版本&#xff0c;并且完全为我工作&#xff1a;http://jsfiddle.net/HvVst/1/使用-webkit-calc()而不是calc()。编辑&#xff1a;然后&#xff0c;你必须减去1px的边框到0.5em填充&#xff…

Leetcode--304. 二维区域和检索

给定一个二维矩阵&#xff0c;计算其子矩形范围内元素的总和&#xff0c;该子矩阵的左上角为 (row1, col1) &#xff0c;右下角为 (row2, col2)。 上图子矩阵左上角 (row1, col1) (2, 1) &#xff0c;右下角(row2, col2) (4, 3)&#xff0c;该子矩形内元素的总和为 8。 示例…

BZOJ4001 TJOI2015概率论(生成函数+卡特兰数)

设f(n)为n个节点的二叉树个数&#xff0c;g(n)为n个节点的二叉树的叶子数量之和。则答案为g(n)/f(n)。 显然f(n)为卡特兰数。有递推式f(n)Σf(i)f(n-i-1) (i0~n-1)。 类似地&#xff0c;左子树节点数为i时右子树有f(n-i-1)种情况&#xff0c;那么可以对左子树的叶子节点数之和计…

前沿|8种面部表情实时追踪,你的喜怒哀乐全被AI看穿了

来源&#xff1a;雷锋网与人类一样&#xff0c;AI也学会了“察言观色”有研究表明&#xff0c;人类在相似的社会环境下表达情感的面部表情几乎是相同的。如果一个人皱眉、嘟嘴、脸色涨红&#xff0c;你一定知道TA是在生气&#xff0c;现在AI同样能够“看穿”这一点。情感分析一…

css3 transform文字,CSS3 transform 字体模糊问题

使用 Vue Material 的 Dialog 做了一个弹出框&#xff0c;弹出框内动态绑定了几个数据&#xff0c;页面效果一出来What the fuck? 马赛克&#xff1f;Vue Material 的组件肯定没问题&#xff0c;应该自己代码哪问题&#xff0c;先把官网提供的例子在项目中运行了一下&#xff…

二分 poj 3273

题目链接&#xff1a;https://vjudge.net/problem/POJ-3273 把n个连续的数字划分成m个连续的部分&#xff0c;每个部分都有一个部分和&#xff08;这个部分所有值加起来&#xff09;&#xff0c;现在要使划分里最大的那个部分和最小。 我用的也是二分&#xff0c;用二分枚举最大…

MyBatis的配置

dao层的操作太麻烦 jdbc 连接数据库&#xff0c;释放空间什么的太烦了&#xff0c;为了简化&#xff0c;引入了MyBatis Mabatis可以简化JDBC操作&#xff0c;实现数据的持久化 Mabatis是一个ORM产品 ORM:Object Relational Mapping eg&#xff1a; person对象 p…

费曼:微积分是上帝的语言 | 书摘

莱布尼茨和牛顿&#xff0c;图片来自thegreatcoursesdaily.com来源&#xff1a; 赛先生制版编辑&#xff1a;Morgan撰文&#xff1a;史蒂夫斯托加茨&#xff08;美国康奈尔大学应用数学系教授&#xff09;没有微积分&#xff0c;我们就不会拥有手机、计算机和微波炉&#xff0c…

js纯ajax,自动完成JS类(纯JS, Ajax模式)

自动完成JS类(纯JS, Ajax模式)更新时间&#xff1a;2009年03月12日 23:51:15 作者&#xff1a;自动完成JS类&#xff0c;用户体验较好。封装成类&#xff0c;方便使用。本站一、 封装的JS文件//********************************************************//创建日期: 2009-03…

Leetcode--151. 翻转字符串里的单词

给定一个字符串&#xff0c;逐个翻转字符串中的每个单词。 示例 1&#xff1a; 输入: "the sky is blue" 输出: "blue is sky the" 示例 2&#xff1a; 输入: " hello world! " 输出: "world! hello" 解释: 输入字符串可以在前面或…

python opencv3 检测人

git&#xff1a;https://github.com/linyi0604/Computer-Vision 1 # coding:utf-82 3 import cv24 5 6 # 检测i方框 包含o方框7 def is_inside(o, i):8 ox, oy, ow, oh o9 ix, iy, iw, ih i 10 return ox > ix and ox ow < ix iw and oy oh < iy i…

朱松纯:AI从感知走向认知是必然趋势

来源&#xff1a;深度学习技术前沿1月28日&#xff0c;以"小数据、大任务"作为技术范式的强认知人工智能平台企业暗物智能科技&#xff08;以下简称“暗物智能”&#xff09;宣布&#xff0c;已于2020年年中完成5亿元人民币的A轮融资。本轮融资由赛领资本和吉富创投共…