做了个剑指Offer的题目目录,链接如下:
https://blog.csdn.net/mengmengdastyle/article/details/80317246
一、题目
输入n个整数,找出其中最小的K个数。例如输入4,5,1,6,2,7,3,8这8个数字,则最小的4个数字是1,2,3,4,。
二、思路
(1) Arrays.sort();
用这个方法排序后进行输出;(有点简单,应该是想考其他的方法实现)
三、代码
import java.util.ArrayList;
import java.util.Arrays;
public class Solution {
public ArrayList<Integer> GetLeastNumbers_Solution(int [] input, int k) {
ArrayList<Integer> res = new ArrayList<>();
if (input == null || input.length == 0) return res;
if (k > input.length) return res;
Arrays.sort(input);
for (int i = 0; i < k; i++) {
res.add(input[i]);
}
return res;
}
}
四、冒泡排序方法
(1)通过冒泡排序将数组进行从小到大排序;
(2)将排序后的前k个值放到ArrayList中;
import java.util.ArrayList;
import java.util.Arrays;
public class Solution {
public ArrayList<Integer> GetLeastNumbers_Solution(int [] input, int k) {
ArrayList<Integer> res = new ArrayList<>();
if (input == null || input.length == 0) return res;
if (k > input.length) return res;
for(int i = 0; i<input.length; i++){
for(int j= i+1; j<input.length; j++){
if(input[i] > input[j]){
int tmp = input[i];
input[i] = input[j];
input[j] = tmp;
}
}
}
for(int i=0;i<k;i++){
res.add(input[i]);
}
return res;
}
}