最小的K个数
最小的K个数
死亡可以带走生命,却带不走生命的痕迹。
背景:Java 在线编程机试刷题。
题目描述:
输入n个整数,找出其中最小的K个数。例如输入4,5,1,6,2,7,3,8这8个数字,则最小的4个数字是1,2,3,4。
输入描述:
例如输入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]
Java代码:
1 import java.util.*;
2
3 public class Solution {
4
5 public ArrayList<Integer> GetLeastNumbers_Solution(int [] input, int k) {
6 ArrayList<Integer> list = new ArrayList<Integer>();
7 int length = input.length;
8 if(k > length || k < 0){
9 return list;
10 }
11
12 for(int i = 0; i < length - 1; i++){
13 for(int j = 0; j < length - i - 1; j++){
14 if(input[j] > input[j+1]){
15 int temp = input[j]; // 简单排序
16 input[j] = input[j+1];
17 input[j+1] = temp;
18 }
19 }
20 }
21
22 for(int i = 0; i < k; i++){
23 list.add(input[i]); // 取最小的前K个数
24 }
25
26 return list;
27 }
28 }
输出验证:
死亡可以带走生命
却带不走生命的痕迹