题目一:
数组中有一个数字出现的次数超过数组长度的一半,请找出这个数字。
你可以假设数组是非空的,并且给定的数组总是存在多数元素。
示例 1:
输入: [1, 2, 3, 2, 2, 2, 5, 4, 2]
输出: 2
思路:直接统计次数,比较输出就可以
代码:
class Solution:
def majorityElement(self, nums: List[int]) -> int:
count=collections.Counter(nums)
for key,value in count.items():
if value>len(nums)//2:
return key
break
题目二:
输入整数数组 arr ,找出其中最小的 k 个数。例如,输入4、5、1、6、2、7、3、8这8个数字,则最小的4个数字是1、2、3、4。
示例 1:
输入:arr = [3,2,1], k = 2
输出:[1,2] 或者 [2,1]
思路:排序、输出
代码:
class Solution:
def getLeastNumbers(self, arr: List[int], k: int) -> List[int]:
arr.sort()
nlist=[]
for item in range(0,k):
nlist.append(arr[item])
return nlist