zoukankan      html  css  js  c++  java
  • [LeetCode][Python]Top K Frequent Elements

    op K Frequent Elements

    Given a non-empty array of integers, return the k most frequent elements.

    For example,
    Given [1,1,1,2,2,3] and k = 2, return [1,2].

    Note: 

    • You may assume k is always valid, 1 ≤ k ≤ number of unique elements.
    • Your algorithm's time complexity must be better than O(n log n), where n is the array's size.

     https://leetcode.com/problems/top-k-frequent-elements/


    求出现频率最高的K个数,要求时间复杂度不能超过 O(n log n)。

    选择最简单的快排O(n log n)来解决,先求出每个数出现的几率,然后排序求出结果。

    排序的地方用lambda函数,就是一个匿名方法,如果是升序,写成:

    list.sort(key=lambda x:x[1])

    相当于:

    list.sort(lambda a,b:cmp(a[1],b[1]))

     1 class Solution(object):
     2     def topKFrequent(self, nums, k):
     3         """
     4         :type nums: List[int]
     5         :type k: int
     6         :rtype: List[int]
     7         """
     8         self.__dict = {}; list = []; res = []
     9         for item in nums:
    10             if self.__dict.has_key(item):
    11                 self.__dict[item] += 1
    12             else:
    13                 self.__dict[item] = 1
    14         for item in self.__dict:
    15             list.append((item, self.__dict[item]))
    16         list.sort(key=lambda x:-x[1])
    17         for i in range(k):
    18             res.append(list[i][0])
    19         return res
  • 相关阅读:
    Excel Sheet Column Number
    HappyNum
    isIsomorphic
    Contains DuplicateII
    iis7 设置http 自动跳转到https
    php 安装redis
    java 打包 war包
    NPOI 操作excel之 将图片插入到指定位置;
    nopi 简洁笔记
    vs11 微软下载地址
  • 原文地址:https://www.cnblogs.com/Liok3187/p/5489903.html
Copyright © 2011-2022 走看看