【题目】 输入n个整数,找出其中最小的K个数。例如输入4,5,1,6,2,7,3,8这8个数字,则最小的4个数字是1,2,3,4,。
*【思路】排序,去除k后的数。
1 package com.exe11.offer; 2 import java.util.ArrayList; 3 import java.util.Collections; 4 /** 5 *【题目】 输入n个整数,找出其中最小的K个数。例如输入4,5,1,6,2,7,3,8这8个数字,则最小的4个数字是1,2,3,4,。 6 *【思路】排序,去除k后的数。 7 * @author WGS 8 * 9 */ 10 public class GetLeastKNumbers { 11 public ArrayList<Integer> getLeastKNumber(int[] nums,int K){ 12 ArrayList<Integer> list=new ArrayList<>(); 13 if(nums==null ||nums.length<=0 || 14 K<1 || K>nums.length) 15 return list; 16 17 for(int i=0;i<nums.length;i++){ 18 list.add(nums[i]); 19 } 20 //2 排序 21 Collections.sort(list); 22 //3 去除K后数 23 while(list.size()>K){ 24 list.remove(K);//一直删除第K个位置的数,直至list大小>K 25 } 26 return list; 27 28 } 29 30 public static void main(String[] args) { 31 GetLeastKNumbers g=new GetLeastKNumbers(); 32 int[] nums=new int[]{4,5,1,6,2,7,3,8}; 33 ArrayList<Integer> list=g.getLeastKNumber(nums, 4); 34 for (Integer integer : list) { 35 System.out.println(integer); 36 } 37 } 38 }