1. 程式人生 > 其它 >理解:回撥函式

理解:回撥函式

技術標籤:牛客網刷題python演算法

題目描述

輸入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:步長]

切片時 前閉後開