题目描述

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

题目解答

使用小根堆
将n个元素全放进小根堆,再一个一个的弹出来,弹前k个为最小的K个
时间复杂度为O(N)+Klog(N);

import java.util.ArrayList;
import java.util.PriorityQueue;public class GetLeastNumbersMe {public static void main(String[] args) {int[] arr = {4,5,1,6,2,7,3,8};GetLeastNumbersMe me = new GetLeastNumbersMe();ArrayList<Integer>  list = me.GetLeastNumbers_Solution(arr,5);System.out.println(list.toString());}public ArrayList<Integer> GetLeastNumbers_Solution(int [] input, int k) {ArrayList<Integer>list=new ArrayList<>();if(k>input.length||k==0)return list;PriorityQueue<Integer> minStack=new PriorityQueue<>();for(int i=0,len=input.length;i<len;i++){minStack.add(input[i]);}for(int i=0;i<k;i++){list.add(minStack.poll());}return list;}}

常考数据结构与算法:最小的k个数相关推荐

  1. 数据结构与算法--最小的k个数

    最小的k个数 题目:输入n个整数,找出其中最小的k个数,例如输入4,5,6,7,8,9这六个数字,则最小的4个是4,5,6,7 方案一 还是最直观的方法,先排序,最快的是快排O(nlog2n),然后遍 ...

  2. 常考数据结构与算法:查找第K大元素算法

    题目描述 有一个整数数组,请你根据快速排序的思路,找出数组中第K大的数. 给定一个整数数组a,同时给定它的大小n和要找的K(K在1到n之间),请返回第K大的数,保证答案存在. 扩展思考:如何处理数组中 ...

  3. 常考数据结构与算法:输出二叉树的右视图

    题目描述 请根据二叉树的前序遍历,中序遍历恢复二叉树,并打印出二叉树的右视图 上图树的右视图为:{1,4,3,7} 做此题之前可以先做下面3道题: 1. 常考数据结构与算法:求二叉树的层序遍历 2.常 ...

  4. 常考数据结构与算法:求二叉树的层序遍历

    题目描述 给定一个二叉树,返回该二叉树层序遍历的结果,(从左到右,一层一层地遍历) 例如: 给定的二叉树是{3,9,20,#,#,15,7}, 该二叉树层序遍历的结果是 [ [3], [9,20], ...

  5. 编程算法 - 最小的k个数 红黑树 代码(C++)

    最小的k个数 红黑树 代码(C++) 本文地址: http://blog.csdn.net/caroline_wendy 题目: 输入n个整数, 找出当中的最小k个数. 使用红黑树(multiset) ...

  6. 常考数据结构与算法:每k个节点反转链表

    题目: 给出一个链表,每 k 个节点一组进行翻转,并返回翻转后的链表. k 是一个正整数,它的值小于或等于链表的长度.如果节点总数不是 k 的整数倍,那么将最后剩余节点保持原有顺序. 示例 : 给定这 ...

  7. 常考数据结构与算法:数组中未出现的最小正整数

    参考博客 https://www.cnblogs.com/apeway/p/10764597.html 题目描述 给定一个无序数组arr,找到数组中未出现的最小正整数 例如arr = [-1, 2, ...

  8. 常考数据结构与算法:合并k个已排序的链表

    题目描述 合并\ k k 个已排序的链表并将其作为一个已排序的链表返回.分析并描述其复杂度. 示例1 输入 [{1,2,3},{4,5,6,7}] 返回值 {1,2,3,4,5,6,7} import ...

  9. 常考数据结构与算法:最长公共子串

    题目描述 给定两个字符串str1和str2,输出两个字符串的最长公共子串 题目保证str1和str2的最长公共子串存在且唯一. 示例1 输入 "1AB2345CD","1 ...

最新文章

  1. SAP WM Movement Type 里的‘Ref.Stor.Type Search’字段用法初探
  2. oracle正在没落,Oracle停掉一个正在运行的job
  3. python可以干什么-Python可以用来做什么 为你揭开python神秘面纱
  4. Facebook Messenger正式登陆Android Auto车载信息娱乐平台
  5. .net中的SelectList在Html.DropdownList中的使用
  6. IDEA系列(十)--新建一个项目后之前的项目不显示
  7. rust(71)-for、while循环表达式
  8. ci框架的session类,怎么使用ci的session类
  9. .NET Core/.NET 5.0 析构函数依然有效?
  10. java 单例 生命周期_Rhythmk 一步一步学 JAVA (13) Spring-2 之Ben懒加载以及生命周期,单例...
  11. Redis Info 命令
  12. AndroidStudio安卓原生开发_SwipeRefreshLayout_下拉刷新控件---Android原生开发工作笔记119
  13. 【Deep Learning】genCNN: A Convolutional Architecture for Word Sequence Prediction
  14. matlab 并联机械臂_MATLAB机械臂的两种路径规划
  15. java实现身份证归属地查询
  16. JavaScript基础知识总结笔记
  17. 联合国会员国国家名称中英文对照
  18. html网页制作教程ppt,网页制作教程html篇.ppt
  19. 8421码5421码2421码余3码
  20. 全国计算机程序员等级,计算机等级考试程序员级考试之四大经验

热门文章

  1. delphi使用sqlite数据库时的中文路径问题
  2. 006-1MOS管工作原理精讲
  3. nested exception is java.lang.IllegalStateException: Context namespace element 'annotation-config' a
  4. macOS下加载动态库dylib报code signature invalid错误的解决办法
  5. JavaScript之图片的无缝滚动
  6. Apache Shiro 使用手册(四)Realm 实现
  7. ACdream OJ 1140 Counting Triangles
  8. ROS 总结(三):Moveit!配置助手
  9. webpack+react多页面开发架构
  10. 【干货】移动APP安全测试要点解析