一、题目

输入n个整数,找出其中最小的K个数。例如输入4,5,1,6,2,7,3,8这8个数字,则最小的4个数字是1,2,3,4,。

二、解法

 import java.util.ArrayList;
public class Solution {
public ArrayList<Integer> GetLeastNumbers_Solution(int[] input, int k) {
// 运行时间:35ms 占用内存:503k
ArrayList<Integer> minNs = new ArrayList<Integer>();
if (k == 0 || k > input.length)
return minNs;
int[] m = new int[k];
// 先把前k个存储到结果
for (int j = 0; j < k; j++) {
m[j] = input[j];
}
int maxIndex = 0;// 最大下标
boolean findMax = true;// 默认每次都要找到最大的
for (int i = k; i < input.length; i++) {
if(findMax)
maxIndex = 0;
// 开始比较,从第k个开始,每次找最大的替换出来 for (int d = 1; d < k; d++) {
if (m[d] > m[maxIndex]) {
maxIndex = d;
} }
// 找到后 比较 如果当前值input[k]比 m中的最大值还小,那么替换
if (input[i] < m[maxIndex]) {
m[maxIndex] = input[i];
findMax = true;
}else {
findMax = false;
}
}
for (int i = 0; i < k; i++) {
// 添加到minNs中
minNs.add(m[i]);
}
return minNs;
}
}

最新文章

  1. HTML5新标签&lt;canvas&gt;
  2. Laxcus大数据管理系统单机集群版
  3. java file的一些方法
  4. KVO初探
  5. [React] Radium: Updating Button Styles via Props
  6. php cgi 与 cli 区别
  7. c# 委托 delegate
  8. Android学习路径——Android的四个组成部分activity(一)
  9. XJOI1595空中楼阁【最短路】
  10. d3根据数据绘制不同的形状
  11. Akka(43): Http:SSE-Server Sent Event - 服务端主推消息
  12. Android初级教程XUtils实现“断点续传”下载
  13. acl权限命令
  14. 16.ajax_case02
  15. 24 正则表达式 re模块
  16. Flex + .Net从本地选择一个图片上传到服务器
  17. xml之一
  18. BZOJ 4197 NOI 2015 寿司晚宴 状压DP
  19. linux 下c语言的pwd 实现
  20. 正则表达式 /i /g /m /ig /gi

热门文章

  1. 更新 pip &amp; setuptools
  2. Linux 查看端口占用情况
  3. Spring Autowired原理
  4. 中国省市 Json 二级联动
  5. 在js和C#中split应用和去除字符串分组后的空值
  6. 【bzoj3992】[SDOI2015]序列统计 原根+NTT
  7. #pragma data_seg
  8. redis分布式(主从复制)
  9. LINUX内核设计与实现第三周读书笔记
  10. Subseq