最小的K个数
来源:互联网 发布:su建模软件 编辑:程序博客网 时间:2024/06/05 18:51
输入n个整数,找出其中最小的K个数。例如输入4,5,1,6,2,7,3,8这8个数字,则最小的4个数字是1,2,3,4,。
思路:建立一个大小为K的数组,然后遍历这N个整数,当前数组元素个数小于k,直接加入,如果当前元素大于K,比较当前数和数组中的最大的数,保留小的舍弃大的。
import java.util.*;public class Solution { public ArrayList<Integer> GetLeastNumbers_Solution(int[] input, int k) { ArrayList<Integer> list = new ArrayList(); //判断空输入 if(input == null || k > input.length) return list; int count = 0; int max = Integer.MIN_VALUE; //当前最大数字 for(int i = 0; i < input.length ; i++){ //如果数组没满 if(count < k){ list.add(input[i]); count++; }else if(count == k){ //如果数组满了,找出最大的一个和当前数字相比较 max = getMax(list); if(max > input[i]){ //如果当前数字比较小,替换那个大的 removeNumber(list,max); list.add(input[i]); max = getMax(list); } } } return list; } public int getMax(ArrayList<Integer> list){ int max = Integer.MIN_VALUE; for(Integer temp : list){ if(temp > max) max = temp; } return max; } public void removeNumber(ArrayList<Integer> list,int number){ Iterator<Integer> iterator = list.iterator(); while(iterator.hasNext()){ if(number == iterator.next()){ iterator.remove(); break; } } }}
阅读全文
0 0
- 最小的K个数
- 最小的K个数
- 最小的K个数
- 最小的k个数
- 最小的k个数
- 最小的k个数
- 最小的k个数
- 最小的k个数
- 最小的k个数
- 最小的K个数
- 最小的k个数
- 最小的K个数
- 最小的K个数
- 最小的K个数
- 最小的K个数
- 最小的K个数
- 最小的k个数
- 最小的k个数
- 十分钟读懂AES加密算法
- hdu1856&&poj1308(基础并查集)
- Leetcode之Search Insert Position 问题
- Android夜间模式实践
- 电脑快捷键
- 最小的K个数
- js如何往数组Array(list)中添加元素
- tensorflow 学习资料收集
- CSS样式重置
- 1课:单片机简叙
- 【分治计数】BZOJ4237 稻草人
- ICP配准
- 复用类 其二
- freemarker日期转换