zoukankan      html  css  js  c++  java
  • [LeetCode] 347. 前K个高频元素

    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)

    输出:

  • 相关阅读:
    迷宫寻宝(自编简单版)
    推荐一个免费翻译接口
    nyoj 82
    poj 3984
    Suffix Tree(后缀树)
    python turtle模块绘图
    python continue语句
    python break语句
    pycharm永久破解激活码
    python while死循环
  • 原文地址:https://www.cnblogs.com/nicetoseeyou/p/10539791.html
Copyright © 2011-2022 走看看