题目
输入n个整数,找出其中最小的K个数。例如输入4,5,1,6,2,7,3,8这8个数字,则最小的4个数字是1,2,3,4。
我个人要注意有
import java.util.ArrayList;//用到链表就得用这个包!
还有就是冒泡排序中的这个值input.length-i-1
思路:
①用一个判断条件,将个别情况排除在外。
②写一个冒泡排序,将数组中的值从小到大以此排列。
③将链表中建立K个值。
④最后就是把建立好的链表返回。
import java.util.ArrayList;//用到链表就得用这个包!
public class Solution {
public ArrayList<Integer> GetLeastNumbers_Solution(int [] input, int k) {
ArrayList<Integer> list = new ArrayList<Integer>();
if(input == null || input.length<=0 ||k > input.length){
return list;
}//判断条件
for(int i = 0 ; i < input.length ; i++){
for(int j = 0 ; j < input.length-i-1 ; j++){//input.length-i-1这个值得注意
if(input[j] > input[j+1]){
int temp = input[j];
input[j] = input[j+1];
input[j+1] = temp;
}
}
}//一个冒泡排序
for(int z = 0 ; z < k ; z++){
list.add(input[z]);
}//建立链表值
return list;
}
}