最小的K的个数

题目描述:

给定一个数组,找出其中最小的K个数。例如数组元素是4,5,1,6,2,7,3,8这8个数字,则最小的4个数字是1,2,3,4。如果K>数组的长度,那么返回一个空的数组

输入:[4,5,1,6,2,7,3,8],4

输出:[1,2,3,4]

import java.util.ArrayList;
import java.util.*;

public class Solution {
    public ArrayList<Integer> GetLeastNumbers_Solution(int [] input, int k) {
        
        ArrayList<Integer> res = new ArrayList<Integer>();
        if (k > input.length || input == null){
            return res;
        }
        int len = input.length;
         for (int n=0; n<k; n++){
            for (int i=0; i<len-1;i++){
                if (input[i] < input[i+1]){
                    int temp = input[i];
                    input[i] = input[i+1];
                    input[i+1] = temp;
//                     System.out.println(Arrays.toString(input));
                }
            }
            res.add(input[len-1-n]);
         }
        return res;
    }
}
原文地址:https://www.cnblogs.com/jieran/p/14513230.html