noaman_wgs

  博客园 :: 首页 :: 博问 :: 闪存 :: 新随笔 :: 联系 :: 订阅 订阅 :: 管理 ::

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

 

posted on 2016-07-02 11:13  noaman_wgs  阅读(91)  评论(0编辑  收藏  举报