題目描述
輸入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]【思路】
採用冒泡演算法,每次將最小的數值冒泡到列表頭部,經過k次冒泡,即完成最小k個數的提取
【邊界情況】
# -*- coding:utf-8 -*-
class
solution
:def
getleastnumbers_solution
(self, tinput, k)
:# write code here
if k<
1or k>
len(tinput)
:return
length=
len(tinput)
for i in
range(0
,length-1)
:if i==k:
break
for j in
range
(length-1,
0+i,-1
):if tinput[j]
: tmp=tinput[j]
tinput[j]
=tinput[j-1]
tinput[j-1]
=tmp
return tinput[
:k]
這道考題,採用冒泡比較簡單,注意提前終止冒泡即可,沒必要全部排序再提取k個最小值 劍指offer 最小k個數
1.題目 輸入n個整數,找出其中最小的k個數。例如輸入4,5,1,6,2,7,3,8這8個數字,則最小的4個數字是1,2,3,4,2.方法 1 基於堆排序演算法,構建最大堆。時間複雜度為o nlogk 2 如果用快速排序,時間複雜度為o nlogn 3 如果用插入排序,時間複雜度為o n 2 3.演...
劍指offer 最小的K個數
華電北風吹 天津大學認知計算與應用重點實驗室 日期 2015 10 4 題目描述 輸入n個整數,找出其中最小的k個數。例如輸入4,5,1,6,2,7,3,8這8個數字,則最小的4個數字是1,2,3,4,解析 基於插入排序的思想可以想到使用乙個長度為k的排序陣列儲存最小的k個元素,複雜度o nk 基於...
《劍指offer》最小的K個數
輸入n個整數,找出其中最小的k個數。例如輸入4,5,1,6,2,7,3,8這8個數字,則最小的4個數字是1,2,3,4,輸入給整數陣列,和k 找出其中最小的k個數 class solution 1 先用插入排序對陣列中數進行排序。2 取出有序陣列中最小的kge。附 這只是乙個比較簡單的方法。如果考慮...