劍指offer 29:最小的k個數--- Java實現

劍指offer每日一題算法題(java解法)

方便日後複習,從今天開始。

算法之行始於足下

[編程題]最小的k個數-- Java實現

------------------------------------------------------------------------------------------------------
題目描述
輸入n個整數,找出其中最小的K個數。例如輸入4,5,1,6,2,7,3,8這8個數字,則最小的4個數字是1,2,3,4,。

前提:
1.理解集合類的sort排序方法,默認調用是升序

解題思路:
1.先把數組放進集合,(因爲要返回集合類的結果)
2.想到了排序,然後再取前面k個數字。
3.取得話還要放進新的地方再一起返回比較麻煩,直接把不要的給刪除掉,於是想到逆序刪除。

import java.util.*;
public class Solution {
    public ArrayList<Integer> GetLeastNumbers_Solution(int [] input, int k) {
        ArrayList<Integer> list=new ArrayList<Integer>();
        if(input.length==0||k<=0||k>input.length) return list;
        //Arrays.sort(input);
        for(int i=0;i<input.length;i++){
            list.add(input[i]);
            /*if(temp>input[i])
            {
                int a=temp;
                temp=input[i];
                input[i]=a;
            }*/
        }
        Collections.sort(list);//使用Collections的sort方法
        for(int i=input.length-1;i>=k;i--){
            list.remove(i);
        }
        return list;
    }
}
發佈了56 篇原創文章 · 獲贊 11 · 訪問量 2054
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章