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

东莞人才网招聘优化关键词的作用

东莞人才网招聘,优化关键词的作用,昌平网站开发公司电话,有投标功能的网站怎么做大家好我是苏麟 , 今天带来一道小题 . 滑动窗口最大值 描述 : 给你一个整数数组 nums,有一个大小为 k 的滑动窗口从数组的最左侧移动到数组的最右侧。你只可以看到在滑动窗口内的 k 个数字。滑动窗口每次只向右移动一位。 返回 滑动窗口中的最大值 。 题目 : …

大家好我是苏麟 , 今天带来一道小题 .

滑动窗口最大值

描述 :

给你一个整数数组 nums,有一个大小为 k 的滑动窗口从数组的最左侧移动到数组的最右侧。你只可以看到在滑动窗口内的 k 个数字。滑动窗口每次只向右移动一位。

返回 滑动窗口中的最大值 

题目 :

LeetCode 239.滑动窗口最大值 :

239. 滑动窗口最大值

分析 :

这种方法我们在基础算法的堆部分介绍过。对于最大值、K个最大这种场景,优先队列(堆)是首先应该考虑的思路。大根堆可以帮助我们实时维护一系列元素中的最大值。


本题初始时,我们将数组 nums 的前 k个元素放入优先队列中。每当我们向右移动窗口时,我们就可以把一个新的元素放入优先队列中,此时堆顶的元素就是堆中所有元素的最大值。然而这个最大值可能并不在滑动窗口中,在这种情况下,这个值在数组 nums 中的位置出现在滑动窗口左边界的左侧。因此,当我们后续继续向右移动窗口时,这个值就永远不可能出现在滑动窗口中了,我们可以将其永久地从优先队列中移除。

我们不断地移除堆顶的元素,直到其确实出现在滑动窗口中。此时,堆顶元素就是滑动窗口中的最大值。为了方便判断堆顶元素与滑动窗口的位置关系,我们可以在优先队列中存储二元组(numindex),表示元素num 在数组中的下标为index。

解析 :

class Solution {public int[] maxSlidingWindow(int[] nums, int k) {int n = nums.length;PriorityQueue<int[]> pq = new PriorityQueue<>(new Comparator<int[]>(){public int compare(int[] a,int[] b){return a[0] != b[0] ? b[0] - a[0] : b[1] - a[1];}});for(int i = 0;i< k; i++){pq.offer(new int[]{nums[i],i});}int[] arr = new int[n - k + 1];arr[0] = pq.peek()[0];for(int i= k;i < n;i++){pq.offer(new int[]{nums[i],i});while(pq.peek()[1] <= i - k){pq.poll();}arr[i - k + 1] = pq.peek()[0];}return arr;}
}

这期就到这里 , 下期见!

http://www.dt0577.cn/news/998.html

相关文章:

  • 给政府做网站能赚多少钱泉州网站建设
  • 网站弹出信息怎么做怎么查询最新网站
  • app网站建设需要什么现在学seo课程多少钱
  • 青岛公司网站建设价格低2345网址导航
  • 青岛建站推广百度数据查询
  • 菏砖网站建设短网址
  • 网站建设论文读书笔记网站怎么快速排名
  • 淘宝客网站怎么做的seo教程技术资源
  • 完成公司网站建设怎么在百度上做推广
  • lnmp搭建后怎么做网站seo顾问培训
  • 网站建设 项目背景免费推广网站注册入口
  • 淮安专业做网站的公司网站怎么制作教程
  • cms做网站不用后端软文营销常用的方式
  • 文创网站怎么找百度客服
  • 石狮网站开发最好的关键词排名优化软件
  • 做电影网站有什么好处谷歌网页版入口
  • 重庆社区app最新版本下载深圳seo网络推广
  • phpweb网站上传百度电话
  • 租车做什么网站推广世界十大网站排名出炉
  • 企业网站建设哪里做网站好环球网
  • 网站开发 题目百度大数据分析平台
  • 茂名seo站内优化网站域名查询官网
  • 南京网站专业制作自建网站流程
  • 贵州网站推广电话广州网页搜索排名提升
  • 推荐做pc端网站平台广告推广
  • cms开源建站系统友情链接实例
  • 网站刷收益是怎么做的一级域名二级域名三级域名的区别
  • 怎么查询网站建设时间最近的重要新闻
  • 网站建设公司新报价培训计划方案
  • 最好的微网站建设公司如何写推广软文