题目:
源码:
方法一:
import java.util.*;
public class Solution {
public ArrayList<Integer> GetLeastNumbers_Solution(int [] input, int k) {
ArrayList<Integer> list = new ArrayList<>();
if (k > input.length || k < 1) {
return list;
}
Arrays.sort(input);
for (int i = 0; i < k; i++) {
list.add(input[i]);
}
return list;
}
}
方法二:可以利用选择、插入、快速等等排序方法,先把数组进行排序,然后进行 k 前个元素的添加返回
以下方法是利用冒泡排序:
import java.util.*;
public class Solution {
public ArrayList<Integer> GetLeastNumbers_Solution(int [] input, int k) {
ArrayList<Integer> list = new ArrayList<>();
if (k > input.length || k < 1) {
return list;
}
for (int bound = 0; bound < input.length; bound++) {
for (int cur = input.length - 1; cur > bound; cur--) {
if (input[cur - 1] > input[cur]) {
swap(input, cur - 1, cur);
}
}
}
for (int i = 0; i < k; i++) {
list.add(input[i]);
}
return list;
}
public void swap(int[] arr, int x, int y) {
int tmp = arr[x];
arr[x] = arr[y];
arr[y] = tmp;
}
}
来源:CSDN
作者:qq_45239139
链接:https://blog.csdn.net/qq_45239139/article/details/104628576