python 版方法1:链表

class Solution(object):
def topKFrequent(self, nums, k):
"""
:type nums: List[int]
:type k: int
:rtype: List[int]
"""
sets=list(set(nums))
count=[[sets[i],nums.count(sets[i])] for i in range(len(sets))]#第一维元素,第二维对应出现次数
count1=sorted(count,key=lambda x: x[1],reverse=True) #按第二维进行降序排序
topK=[count1[i][0] for i in range(k)]
return topK

采用sorted()函数对多维数组按照其中某一维进行排序参见:http://www.runoob.com/python/python-func-sorted.html 

python 版方法2:top K之最小堆实现

https://mp.weixin.qq.com/s?__biz=MzI3NTkyMjA4NA==&mid=2247484955&idx=1&sn=fe487b4baba4109a6e76ec5410f8ecd4&chksm=eb7c2bd0dc0ba2c67b87e717cd6f93cff506140fa787f2a0d53372f7964f192aa523848cf69f&scene=21#wechat_redirect

python 版方法3:top K之快排实现

https://mp.weixin.qq.com/s?__biz=MzI3NTkyMjA4NA==&mid=2247485012&idx=1&sn=eed804a55198d5eb647f4e7acd3e9bfe&chksm=eb7c2b9fdc0ba2899935a32a4e213544847e8cb18bbbd8db4788cc5deb0454e0f83f6799d130&scene=21#wechat_redirect

扩展,对于python中两个list(长度相同),当一个list排序之后,另一个list如何按照对应索引进行变换?

a=[3,2,4,1]
b=[103,109,108,100]
c=list(zip(a,b)) #两个一维链表合并维一个二维链表
sort_c=sorted(c, key=lambda x: x[1],reverse=True) #按照第二维排序
print(sort_c)

输出:

[LeetCode] 347. 前K个高频元素的更多相关文章

  1. Java实现 LeetCode 347 前 K 个高频元素

    347. 前 K 个高频元素 给定一个非空的整数数组,返回其中出现频率前 k 高的元素. 示例 1: 输入: nums = [1,1,1,2,2,3], k = 2 输出: [1,2] 示例 2: 输 ...

  2. [LeetCode]347. 前 K 个高频元素(堆)

    题目 给定一个非空的整数数组,返回其中出现频率前 k 高的元素. 示例 1: 输入: nums = [1,1,1,2,2,3], k = 2 输出: [1,2] 示例 2: 输入: nums = [1 ...

  3. leetcode 347. 前 K 个高频元素

    问题描述 给定一个非空的整数数组,返回其中出现频率前 k 高的元素.   示例 1: 输入: nums = [1,1,1,2,2,3], k = 2 输出: [1,2] 示例 2: 输入: nums ...

  4. Leetcode 347.前K个高频元素 By Python

    给定一个非空的整数数组,返回其中出现频率前 k 高的元素. 示例 1: 输入: nums = [1,1,1,2,2,3], k = 2 输出: [1,2] 示例 2: 输入: nums = [1], ...

  5. leetcode 347前k个高频元素

    通过hash map遍历一遍存储出现的次数,通过小顶堆存储k个元素 //设想利用hash map来存储每个元素的个数:采用小顶堆存储k个元素:timeO(n+klogk)spaceO(n+k) cla ...

  6. LeetCode:前K个高频元素【347】

    LeetCode:前K个高频元素[347] 题目描述 给定一个非空的整数数组,返回其中出现频率前 k 高的元素. 示例 1: 输入: nums = [1,1,1,2,2,3], k = 2 输出: [ ...

  7. 力扣 - 347. 前 K 个高频元素

    目录 题目 思路1(哈希表与排序) 代码 复杂度分析 思路2(建堆) 代码 复杂度分析 题目 347. 前 K 个高频元素 思路1(哈希表与排序) 先用哈希表记录所有的值出现的次数 然后将按照出现的次 ...

  8. 代码随想录第十三天 | 150. 逆波兰表达式求值、239. 滑动窗口最大值、347.前 K 个高频元素

    第一题150. 逆波兰表达式求值 根据 逆波兰表示法,求表达式的值. 有效的算符包括 +.-.*./ .每个运算对象可以是整数,也可以是另一个逆波兰表达式. 注意 两个整数之间的除法只保留整数部分. ...

  9. leetcode.排序.347前k个高频元素-Java

    1. 具体题目 给定一个非空的整数数组,返回其中出现频率前 k 高的元素. 示例 1: 输入: nums = [1,1,1,2,2,3], k = 2 输出: [1,2] 示例 2: 输入: nums ...

随机推荐

  1. Codeforces Round #FF (Div. 2) D. DZY Loves Modification 贪心+优先队列

    链接:http://codeforces.com/problemset/problem/447/D 题意:一个n*m的矩阵.能够进行k次操作,每次操作室对某一行或某一列的的数都减p,获得的得分是这一行 ...

  2. oracle删除日志文件

    oracle删除日志文件 删除日志文件的语法例如以下: alter database drop logfile member logfile_name; 删除日志文件须要注意例如以下几点: 1.该日志 ...

  3. Java封装FushionCharts

    近期公司接了个关于数据统计的系统.须要用到报表功能.找了几天认为还是FushionCharts 适合.所以就对FushionCharts进行了java代码封装,方便,前台,后台调用. 1.报表Mode ...

  4. 略过天涯 深入浅出VGA和DVI接口【转】

    本文转载自:http://www.cnblogs.com/lueguo/p/3373649.html 由CrazyBingo修改…… 前言:目前显示器的主流接口是VGA.DVI以及HDMI,再加上一个 ...

  5. Linux - 设置光盘,开机自动挂载。

    设置光盘,开机自动挂载. 挂载, 在linux操作系统中, 挂载是指将一个设备(通常是存储设备)挂接到一个已存在的目录上. 我们要访问存储设备中的文件,必须将文件所在的分区挂载到一个已存在的目录上, ...

  6. PHP 和 Java 的主要区别有哪些?

    PHP 和 Java 的主要区别有哪些? 其实Java方面我要学的真的还有很多,要是有大项目的机会和经验就好,所以提前我肯定要把基础打扎实. 我要学的还有很多,比如前段,后端,还有linux,还有肯定 ...

  7. nyoj--635--Oh, my goddess(dfs)

    Oh, my goddess 时间限制:3000 ms  |  内存限制:65535 KB 难度:3 描述 Shining Knight is the embodiment of justice an ...

  8. Connect the Cities--hdoj

    Connect the Cities Time Limit : 2000/1000ms (Java/Other)   Memory Limit : 32768/32768K (Java/Other) ...

  9. iterator和iterable的区别

    相关博客:  http://blog.csdn.net/lipengcn/article/details/51700153         Java中Iterable和Iterator的辨析 http ...

  10. 用户注册登录验证 多版本集合 + hashlib加密

    #!/usr/bin/env python# -*- coding: utf-8 -*-# @Time : 2018/5/6 0006 12:22# @Author : Anthony.Waa# @S ...