169. Majority Element
Given an array of size n, find the majority element. The majority element is the element that appears more than ⌊ n/2 ⌋
times.
You may assume that the array is non-empty and the majority element always exist in the array.
Example 1:
Input: [3,2,3] Output: 3
Example 2:
Input: [2,2,1,1,1,2,2] Output: 2
给定一个大小为n的数组,找到其中的“多数元素”。多数元素指的是出现次数超过 ⌊ n/2 ⌋ 次的元素。
思路:可以利用python中的set,先找出数组中的所有不同的数,然后判断该集合中的每个数在数组中出现次数是否过半。
class Solution:
def majorityElement(self, nums):
nums_set=set(nums)
for i in nums_set:
if nums.count(i)>len(nums)//2:
return i
229. Majority Element II
Given an integer array of size n, find all elements that appear more than ⌊ n/3 ⌋
times.
Note: The algorithm should run in linear time and in O(1) space.
Example 1:
Input: [3,2,3] Output: [3]
Example 2:
Input: [1,1,1,3,3,2,2,2] Output: [1,2]
找出一个数组中出现次数超过⌊ n/3 ⌋
次的所有数字。
做法和上题类似,但在此处要多设置一个列表,每找到一个数字,就添加在列表里,最后返回列表
class Solution:
def majorityElement(self, nums):
nums_set=set(nums)
ret=[]
for i in nums_set:
if nums.count(i)>len(nums)//3:
ret.append(i)
return ret