题目描述
输入整数数组 arr ,找出其中最小的 k 个数。例如,输入4、5、1、6、2、7、3、8这8个数字,则最小的4个数字是1、2、3、4。
來源:力扣(LeetCode)
解题思路
由于选择最小的 K 个数,K 为任意数,由于返回的 K 为不特定个数,且输入之 arr 需要判断至最后一个,因此时间複杂度至少为 O(N);
因此以 sorted()
将 arr 进行排列后,返回前 K 个数值。
- 分配多一点时间进行『问题拆解』,不急著开始写代码的动作,会找到 Better Solution。
Python 代码
class Solution:
def getLeastNumbers(self, arr: List[int], k: int) -> List[int]:
res = sorted(arr)
return res[:k]