import java.util.ArrayList;
import java.util.TreeSet;
/**
* 面试题30:最小的K个数
* 输入n个整数,找出其中最小的K个数。例如输入4,5,1,6,2,7,3,8这8个数字,则最小的4个数字是1,2,3,4,。
*/
public class _30_min_k_num {
public static void main(String[] args) {
int[] num={4,5,1,6,2,7,3,8};
Solution30 solution30 = new Solution30();
ArrayList<Integer> arrayList=solution30.GetLeastNumbers_Solution(num, 1);
for(Integer out:arrayList){
System.out.print(out+"、");
}
}
}
class Solution30 {
public ArrayList<Integer> GetLeastNumbers_Solution(int [] input, int k) {
ArrayList<Integer> arrayList = new ArrayList<Integer>();
if(input.length==0||k==0||k>input.length){
return arrayList;
}
TreeSet<Integer> treeSet = new TreeSet<Integer>();
for(int i=0;i<k;i++){
treeSet.add(input[i]);
}
for(int i=k;i<input.length;i++){
int tmpMax=treeSet.last();
if(input[i]<tmpMax){
treeSet.remove(treeSet.last());
treeSet.add(input[i]);
}
}
for(Integer s:treeSet){
arrayList.add(s);
}
return arrayList;
}
}

最新文章

  1. PHP 开发API接口签名验证
  2. 深入浅出Alljoyn——实例分析之远程调用(Method)篇
  3. ACE admin 后台管理框架
  4. 简单的oracle分页语句
  5. Angular系列---- AngularJS入门教程03:AngularJS 模板(转载)
  6. Cocos2d-x 基础元素
  7. jQuery 模板插件jquery-tmpl
  8. ncp的简单实用
  9. MySQL(七) —— MySQL存储过程 &amp; 存储引擎
  10. ecshop常用语句
  11. Linux 进程管理剖析--转
  12. json格式字符串与java.util.Map的互转(借助于jackson.jar)
  13. Drupal 7 模 .info 文件描述
  14. java学习开题
  15. 加载web项目时报的错误:Tomcat version 6.0 only supports J2EE 1.2, 1.3, 1.4, and Java EE 5 Web modul
  16. es2.4.6 java api 工具类
  17. 云笔记项目-Spring事务学习-传播NEVER
  18. WebLogic 11g的安装与配置详谈配置详谈
  19. node的consoidate的插件统一
  20. nginx 启动 + uwsgi + django

热门文章

  1. 【AtCoder】AGC022 F - Leftmost Ball 计数DP
  2. 【BZOJ】2310: ParkII 插头DP
  3. backup服务器之rsync服务
  4. 9、StringBuffer和StringBuilder
  5. Linux/Unix系统编程手册 第二章:基本概念
  6. Electron build 无法下载 winCodeSign 等资源
  7. zookeeper zkClient api 使用
  8. 83.Linux之ubuntu-14.04.4-desktop-amd64安装
  9. 读书笔记 effective c++ Item 42 理解typename的两种涵义
  10. Focal Loss笔记