理解:回撥函式
阿新 • • 發佈:2020-12-12
題目描述
輸入n個整數,找出其中最小的K個數。例如輸入4,5,1,6,2,7,3,8這8個數字,則最小的4個數字是1,2,3,4。
示例1
輸入:
[4,5,1,6,2,7,3,8],4
返回值:
[1,2,3,4]
牛客編譯通過程式碼
1、程式碼
牛客的python環境為python 2.7
# -*- coding:utf-8 -*-
class Solution:
def GetLeastNumbers_Solution(self, tinput, k):
tinput = sorted(list(tinput))
newlist = []
if len(tinput) >= k:
newlist = tinput[0:k]
return newlist
else:
return newlist
# write code here
2、時長和記憶體
3、演算法思想
找出一組數中最小(最大)的K個數,我們可以先排序,在切片。
(1)排序函式:sorted()函式
sorted() 函式對所有可迭代的物件進行排序操作,內建函式 sorted 方法返回的是一個新的 list,而不是在原來的基礎上進行的操作,原可迭代物件不變。
sorted 語法:
sorted(iterable, cmp=None, key=None, reverse=False)
引數說明:
1、iterable – 可迭代物件。
2、cmp – 比較的函式,這個具有兩個引數,引數的值都是從可迭代物件中取出,此函式必須遵守的規則為,大於則返回1,小於則返回-1,等於則返回0。
3、key – 主要是用來進行比較的元素,只有一個引數,具體的函式的引數就是取自於可迭代物件中,指定可迭代物件中的一個元素來進行排序。
4、reverse – 排序規則,reverse = True 降序 , reverse = False 升序(預設)。
(2)切片:[起始index:終止index:步長]
切片時 前閉後開