每日演算法之最小的K個數
阿新 • • 發佈:2022-12-10
JZ40 最小的K個數
描述
給定一個長度為 n 的可能有重複值的陣列,找出其中不去重的最小的 k 個數。例如陣列元素是4,5,1,6,2,7,3,8這8個數字,則最小的4個數字是1,2,3,4(任意順序皆可)。
思路:
具體做法:
step 1:優先判斷k為0或者輸入陣列長度為0的特殊情況。
step 2:使用sort函式對整個陣列排序。
step 3:遍歷排序後的陣列前k個元素即可獲取最小的k個
程式碼
package mid.JZ40最小的K個數; import java.util.ArrayList; import java.util.Arrays; public class Solution { public ArrayList<Integer> GetLeastNumbers_Solution(int[] input, int k) { //儲存結果 ArrayList<Integer> result = new ArrayList<>(); //初始化最大元素為1位置的元素 Arrays.sort(input); for (int i = 0; i < k; i++) { result.add(input[i]); } return result; } public static void main(String[] args) { int[] arr = new int[]{4,5,1,6,2,7,3,8}; System.out.println(new Solution().GetLeastNumbers_Solution(arr, 4)); } }