怎样做28网站代理平面设计线上培训机构推荐
2026/2/22 6:58:56 网站建设 项目流程
怎样做28网站代理,平面设计线上培训机构推荐,大数据营销的运营方式有哪些,关键词优化到首页怎么做到的一、 堆#xff1a; 了解下就好#xff08;1#xff09;堆是完全二叉树的结构什么是完全二叉树#xff1a;1.只允许最后一行不满2.最后一行必须从左往右排#xff0c;中间不能有间隔#xff08;2#xff09;堆序性1.小根堆#xff0c;父节点都要更小2.大根堆#xff0…一、 堆 了解下就好1堆是完全二叉树的结构什么是完全二叉树1.只允许最后一行不满2.最后一行必须从左往右排中间不能有间隔2堆序性1.小根堆父节点都要更小2.大根堆父节点都要更大3堆的存储因为是完全二叉树所以可以根据层序遍历来得到一个数组此时父节点为i时左右子节点一定为2i1/24堆有两个基本操作:1.上滤通常用于插入新元素到根中时向上调整位置时2.下滤(因为必须要满足堆序性的话所以对不满足的要操作)把根节点向下调整的操作叫下滤5自顶向下建堆法:1.插入堆2.上滤6自下而上建堆法:对每个父节点进行下滤(从最下面的父节点开始)--复杂度O(N)7应用1.优先队列:弹出最小元素--可以用来实现堆排序用大根堆排序完弹出的是正序小根堆反2.插入:就是上滤java中常见写法最大堆LamdaPriorityQueueInteger maxHeap new PriorityQueue((a, b) - b - a);最小堆一般直接这么写就行PriorityQueueInteger small_stack new PriorityQueue();lamda二、桶排序例题前K个高频元素class Solution { public int[] topKFrequent(int[] nums, int k) { // 第一步统计每个元素的出现次数 MapInteger, Integer cnt new HashMap(); for (int x : nums) { cnt.merge(x, 1, Integer::sum); // cnt[x] } int maxCnt Collections.max(cnt.values()); // 第二步把出现次数相同的元素放到同一个桶中 ListInteger[] buckets new ArrayList[maxCnt 1]; Arrays.setAll(buckets, _ - new ArrayList()); for (Map.EntryInteger, Integer e : cnt.entrySet()) { buckets[e.getValue()].add(e.getKey()); } // 第三步倒序遍历 buckets把出现次数前 k 大的元素加入答案 int[] ans new int[k]; int j 0; for (int i maxCnt; i 0 j k; i--) { // 注意题目保证答案唯一一定会出现某次循环结束后 j 恰好等于 k 的情况 for (int x : buckets[i]) { ans[j] x; } } return ans; } }

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询