leetcode--python--面试题 17.10

面试题 17.10. 主要元素

数组中占比超过一半的元素称之为主要元素。给定一个整数数组,找到它的主要元素。若没有,返回-1。

class Solution(object):
    def majorityElement(self, nums):
        """
        :type nums: List[int]
        :rtype: int
        """
        n = len(nums) 			#首先得到数组长度
        unique = set(nums)		#用set函数得到数组中不同元素的集合
        half = int(n/2)
        for i in unique:		#遍历unique
            if nums.count(i) > half:		#如果nums中某个数大于出现次数大于一半,返回
                return(i)
        return(-1)				#否则返回-1

在这里插入图片描述
排序法:

class Solution(object):
    def majorityElement(self, nums):
        """
        :type nums: List[int]
        :rtype: int
        """
      
        half = int(len(nums)/2)
        tem_list = sorted(nums)
        for i in range(half + 1):
            if tem_list[i] == tem_list[i + half]:
                return(tem_list[i])
        return(-1)

在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/AWhiteDongDong/article/details/110522522
今日推荐