劍指offer 第二十九題 最小的k個數

題目描述

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

第一種解法:

                  暴利破解,直接Arrays.sort(),java自帶的排列,是nlogn。

第二種解法:

                   求最大堆,最小堆的方法。優先權隊列,這裏後面會補上,快速刷題救過

                   

 

第一種解法的解答:

import java.lang.reflect.Array;
import java.util.ArrayList;
import java.util.Arrays;

public class Solution {
    public ArrayList<Integer> GetLeastNumbers_Solution(int [] input, int k) {
        ArrayList<Integer> arrayList = new ArrayList<Integer>();
        if(k >input.length)
            return arrayList;
        Arrays.sort(input);
        for(int i=0;i<k;i++)
            arrayList.add(input[i]);
        return arrayList;

    }
}

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章