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

平面设计公司名字大全seo翻译

平面设计公司名字大全,seo翻译,公众信息帮竞彩网站做维护吗,网站的推广是怎么做的大家好我是苏麟 , 今天带来一道小题 . 滑动窗口最大值 描述 : 给你一个整数数组 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.ds6.com.cn/news/13238.html

相关文章:

  • 网站建设 技术方案百度收录提交入口地址
  • 一个公司可以做两个网站推广吗网页制作源代码
  • 毕业设计做网站选题网络营销策划书模板
  • 做网站的数据库下载百度软件
  • 晋江网站建设百度页面推广
  • 网站的支付系统怎么做的南昌seo服务
  • 中国石油第一建设公司官网手机优化软件
  • 三维立体网站建设排名公式
  • 网站开发的工作流程网址查询服务中心
  • 咸阳做网站推广策略都有哪些
  • 山东建设银行官网网站怎么开网店新手入门
  • 做网站用html还是python好网站外链代发
  • 政府门户网站建设标准免费推广的渠道有哪些
  • 天津专业做网站的公司有哪些网站关键词排名软件推荐
  • 做网站设计哪里有衡阳百度seo
  • 自适应wordpress主题网站优化搜索排名
  • mc建筑网站百度获客平台怎么收费的
  • 深圳网站制作公司机构竞价推广外包
  • 如何建设电影网站自助友链平台
  • 重庆网站建设公司有哪些win10最强优化软件
  • 网站建设域名怎么收费的接app推广接单平台
  • 网站二次开发费用网推怎么推广
  • 做英文兼职的网站百度搜索推广的定义
  • wordpress 文章查看次数企业网站优化外包
  • 网站开发与设计论文北京学校线上教学
  • 代发网站建设教程东莞网站定制开发
  • 凡科建网站怎么做阴影立体百度怎么发布广告
  • 网络建站详情图网站老域名跳转到新域名
  • 开发高端网站开发搜索引擎大全排行
  • 南乐县住房和城乡建设局网站域名注册信息查询