剑指offer系列55---最小的k个数

Posted noaman_wgs

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了剑指offer系列55---最小的k个数相关的知识,希望对你有一定的参考价值。

【题目】 输入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 }

 

以上是关于剑指offer系列55---最小的k个数的主要内容,如果未能解决你的问题,请参考以下文章

剑指 Offer 45. 把数组排成最小的数 剑指 Offer 61. 扑克牌中的顺子 剑指 Offer 40. 最小的k个数

剑指offer--40最小的k个数

剑指offer--40最小的k个数

剑指offer---最小的K个数

剑指 Offer 40. 最小的k个数

最小的K个数-剑指Offer