LeetCode.169. 求众数

给定一个大小为 n 的数组,找到其中的众数。众数是指在数组中出现次数大于 ⌊ n/2 ⌋ 的元素。你可以假设数组是非空的,并且给定的数组总是存在众数。

示例 1:

输入: [3,2,3]
输出: 3

示例 2:

输入: [2,2,1,1,1,2,2]
输出: 2

思路:

若列表中存在这种数量过半的众数,则列表排序后,此列表正半索引的元素一定是此众数。

代码:

class Solution(object):
    def majorityElement(self, nums):
        """
        :type nums: List[int]
        :rtype: int
        """
        nums.sort()
        return nums[int(len(nums)/2)]

分析:

Python内置sort函数使用蒂姆排序,时间复杂度O(nlogn)空间复杂度O(n)
有序列表检索,时间复杂度O(1)

参考:

扫描二维码关注公众号,回复: 3394633 查看本文章

《剑指Offer:名企面试官精讲典型编程题》P205 面试题39

猜你喜欢

转载自blog.csdn.net/u013942370/article/details/82320668