当前位置: 首页 > wzjs >正文

中小企业建设网站应注意做零售外贸网站有哪些

中小企业建设网站应注意,做零售外贸网站有哪些,wordpress 首页评论,网站开发用什么书215. 数组中的第K个最大元素 - 力扣(LeetCode) 堆排序 我们可以借助一个小顶堆来维护当前堆内元素的最小值,同时保证堆的大小为 k: 遍历数组将元素入堆; 如果当前堆内元素超过 k 了,我们就把堆顶元素去除…

215. 数组中的第K个最大元素 - 力扣(LeetCode)

堆排序
我们可以借助一个小顶堆来维护当前堆内元素的最小值,同时保证堆的大小为 k:

遍历数组将元素入堆;
如果当前堆内元素超过 k 了,我们就把堆顶元素去除,即去除当前的最小值。
因此我们在元素入堆的过程中,不断淘汰最小值,最终留在堆中就是数组中前 k 个最大元素,并且堆顶元素为前 k 大元素中的最小值,即为第 k 个元素。

class Solution {//我们可以借助一个小顶堆来维护当前堆内元素的最小值,同时保证堆的大小为 k://遍历数组将元素入堆;//如果当前堆内元素超过 k 了,我们就把堆顶元素去除,即去除当前的最小值。//因此我们在元素入堆的过程中,不断淘汰最小值,最终留在堆中就是数组中前 k 个最大元素,并且堆顶元素为前 k 大元素中的最小值,即为第 k 个元素。public int findKthLargest(int[] nums, int k) {Queue<Integer> pq=new PriorityQueue<>();for(int num: nums){pq.offer(num);if(pq.size() > k){pq.poll();   // 堆中元素超过k个,弹出最小的那个}}return pq.peek();}
}

 注意:这种方法并不是设置堆的大小只能是k,而是当堆为k+1大小时候自动的去删除最小的。省去了人为判断

347. 前 K 个高频元素 - 力扣(LeetCode)

这道题和上一道的区别在于我们重写了Comparator,采用了根据map.value来排序

注意:最后要通过res.stream().mapToInt(Integer::intValue).toArray();转换回int[]

  1. 创建流res.stream()List<Integer> 转换为一个流。

  2. 映射为原始类型mapToInt(Integer::intValue) 将流中的每个 Integer 对象转换为 int

  3. 收集为数组toArray() 将流中的 int 类型元素收集到一个 int[] 数组中。

class Solution {public int[] topKFrequent(int[] nums, int k) {Map<Integer,Integer> hashmap=new HashMap<>();//借助 哈希表 来建立数字和其出现次数的映射,遍历一遍数组统计元素的频率for(int n:nums){hashmap.put(n,hashmap.getOrDefault(n,0)+1);}//这里需要自己重写Comparater频率第k大 还是用最小堆,规则是按map的value排序PriorityQueue<Integer> pq=new PriorityQueue<>(new Comparator<Integer>(){@Overridepublic int compare(Integer a,Integer b){return hashmap.get(a)-hashmap.get(b);}});for (Integer key : hashmap.keySet()) {pq.offer(key);if(pq.size()>k) pq.poll();//去掉出现频率最小的}// 取出最小堆中的元素List<Integer> res = new ArrayList<>();while (!pq.isEmpty()) {res.add(pq.poll());}return res.stream().mapToInt(Integer::intValue).toArray();}}

在 Java 中,两个冒号 ::方法引用 的语法符号,它用于直接引用已存在的方法,而无需通过匿名类或 Lambda 表达式显式调用。方法引用是 Java 8 引入的一个特性,主要用于简化代码,使其更加简洁和易读。

方法引用的作用

方法引用允许你直接引用一个类或对象的现有方法,而不是通过 Lambda 表达式重新实现相同的功能。它通常用于与函数式接口(如 FunctionConsumerSupplier 等)一起使用。

方法引用的常见形式

方法引用有以下几种形式:

  1. 静态方法引用
    格式:类名::静态方法名
    示例:Math::abs,表示引用 Math 类中的 abs 静态方法。

  2. 实例方法引用
    格式:对象名::实例方法名
    示例:string::length,表示引用某个字符串对象的 length() 方法。

  3. 类方法引用
    格式:类名::实例方法名
    示例:String::length,表示引用任意字符串对象的 length() 方法。

  4. 构造方法引用
    格式:类名::new
    示例:ArrayList::new,表示引用 ArrayList 的构造方法。

295. 数据流的中位数 - 力扣(LeetCode) 

具体的,我们可以使用两个优先队列(堆)来维护整个数据流数据,令维护数据流左半边数据的优先队列(堆)为 l,维护数据流右半边数据的优先队列(堆)为 r。

显然,为了可以在 O(1) 的复杂度内取得当前中位数,我们应当令 l 为大根堆,r 为小根堆,并人为固定 l 和 r 之前存在如下的大小关系:

当数据流元素数量为偶数:l 和 r 大小相同,此时动态中位数为两者堆顶元素的平均值;
当数据流元素数量为奇数:l 比 r 多一,此时动态中位数为 l 的堆顶原数

为了满足上述说的奇偶性堆大小关系,在进行 addNum 时,我们应当分情况处理:

1.插入前两者大小相同,总数为偶数时,即将变成奇数。先将数字放入r,然后把r中最小的数给l。将判断的权力交给堆。

2.插入前两者大小不同,总数为奇数时,即将变成偶数。先放到大根堆,然后从大根堆中拿出一个最大的放到r去

总而言之,必须保持大小 l==r 或是 l=r+1;

class MedianFinder {PriorityQueue<Integer> l = new PriorityQueue<>((a, b) -> b - a); // 大根堆PriorityQueue<Integer> r = new PriorityQueue<>((a, b) -> a - b); // 小根堆public MedianFinder() {}//永远保持l比r多1public void addNum(int num) {// 总数为偶数时,即将变成奇数。先将数字放入r,然后把r中最小的数给l。将判断的权力交给堆。if (l.size() == r.size()) {r.offer(num);l.offer(r.poll());} else { // 总数为奇数时,即将变成偶数 从大根堆中拿出一个放到r去l.offer(num);r.offer(l.poll());}}public double findMedian() {// 总数为偶数时,中位数是两个堆顶的平均值if (l.size() == r.size()) {return (l.peek() + r.peek()) / 2.0;} else { // 总数为奇数时,中位数是大根堆的堆顶return l.peek();}}
}

 


文章转载自:

http://VsZMmFhg.xnjgt.cn
http://A90dWrOi.xnjgt.cn
http://lgglQ7pJ.xnjgt.cn
http://rb860x8n.xnjgt.cn
http://YZqDLZ5D.xnjgt.cn
http://XNV4Tgvx.xnjgt.cn
http://wP3ZsHES.xnjgt.cn
http://INqZJP02.xnjgt.cn
http://J2oCDTEP.xnjgt.cn
http://gjQt5I4g.xnjgt.cn
http://x4AA3Tez.xnjgt.cn
http://6gxsQXwA.xnjgt.cn
http://DXl9k5FM.xnjgt.cn
http://Ct3F7Rta.xnjgt.cn
http://x2Ddz8aB.xnjgt.cn
http://dn9xUiaw.xnjgt.cn
http://Jpq9uLJE.xnjgt.cn
http://01TEcdkP.xnjgt.cn
http://FApHlJZR.xnjgt.cn
http://hBtBAbKq.xnjgt.cn
http://teRnPgOr.xnjgt.cn
http://IHGEFFIo.xnjgt.cn
http://6BtaufdB.xnjgt.cn
http://HIVNY3Xn.xnjgt.cn
http://Elk7X4on.xnjgt.cn
http://SDCdktjD.xnjgt.cn
http://6E5OCtkN.xnjgt.cn
http://zl7aCm5U.xnjgt.cn
http://iiHbOiKi.xnjgt.cn
http://71RGQGpT.xnjgt.cn
http://www.dtcms.com/wzjs/708534.html

相关文章:

  • 有源码搭建网站难不难营销推广是一种什么的促销方式
  • 杨和网站开发网页设计实训报告代码
  • 青岛网站搭建公司哪家好冒险岛2做乐谱网站
  • 邮件服务商什么是优化网站
  • 国家免费培训网站中国互联网协会官网
  • 网站布局设计工具邢台网站设计哪家好
  • 有做挂名法人和股东的网站吗网站建设zrhskj
  • 广州网站建设公司哪家服务好flash 网站开发教程
  • 维恩图在线制作网站凡科网做网站要钱吗
  • 外国扁平化网站wordpress资源分享网
  • 购物网站黑白wordpress小程序商城
  • 网站整改建设安全设备方案怎么建医疗网站
  • 网站建设中网站需求分析报告功能自己理解烟台门户网站
  • 山西省住房和城乡建设厅网站首页wordpress 搜索 下一个
  • 快手秒赞秒评网站推广如何快速做网站
  • 山东建设官方网站武功做网站
  • 网站空间购买时选择什么脚本语言免费行情软件app网站大全下载u288
  • 施工企业八大员.net网站如何优化
  • 郑州品牌营销网站建设外贸网站优化
  • 建设音乐网站功能定位网站营销管理培训班
  • 快速建站平台桂林景区网站建设策划方案
  • 营销型公司网站为什么做pc网站
  • 网站开发要怎么学建筑工程网上举报平台官网
  • 朝阳网站制作公司小程序注册收费吗
  • 乐陵网站优化深圳网站建设合同范本
  • 下载flash网站图片瀑布流代码wordpress
  • visual studio网站开发教程正邦设计院
  • 建网站石家庄跨境电商工具类产品的网站
  • 如何申请网站重庆网站建设夹夹虫公司
  • 梅州哪里做网站小企业网站 优帮云