首页 > 其他 > 详细

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

时间:2016-07-02 11:52:08      阅读:83      评论:0      收藏:0      [点我收藏+]

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

原文:http://www.cnblogs.com/noaman/p/5635007.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!