摘要: 相关阐述 小顶堆:Java中的PriorityQueue<>()默认为小顶堆实现,即队列的顶部元素为最小值,内部按照升序排好 大顶堆:跟小顶堆相反,需要使用PriorityQueue<>((x,y)->(y-x))来实现,队列的顶部元素为最大值,内部按照降序排好 分析 假设存在A为普通的小顶堆,B为 阅读全文
posted @ 2020-08-30 16:10 珂珂哒 阅读(234) 评论(0) 推荐(0)
摘要: 题目 输入整数数组,找到其中最小的k个数 算法思路 利用快排的每次选取锚点将其插入到合适的位置的特性,可以直接返回最小的k个数而不需要完整的排序 代码 public int[] getLeastNumbers(int[] arr, int k) { if(k==0||arr.length==0)re 阅读全文
posted @ 2020-08-30 15:26 珂珂哒 阅读(399) 评论(0) 推荐(0)
摘要: 相关概念 投票和:由于数组中所要寻找的众数大于数组的一般长度,所以如果记跟众数x相等的数票数为+1,不等的为-1,那么最后的总和票数一定是大于0的; 票数正负抵消:如果出现了前i个数的投票和为0,那么数组中剩下的部分的投票和一定会大于0; 算法构建 首先设置数组中第一个数为众数x,那么发生正负抵消时 阅读全文
posted @ 2020-08-30 12:06 珂珂哒 阅读(175) 评论(0) 推荐(0)