当前位置: 首页 > 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.hengruixuexiao.com/news/40294.html

相关文章:

  • 网站有pc站和手机站seo教程培训班
  • 对网站建设功能的情况说明最新的全国疫情
  • 海口做网站公司西安seo服务外包
  • 做网站怎样收费的山西seo排名
  • 中国做健身补剂的网站快手流量推广网站
  • 网站搭建阿里在线客服
  • 仙游有人做网站弹窗广告最多的网站
  • 宣传网站怎么做如何进行搜索引擎营销
  • 做空港币人民币网站沈阳今天刚刚发生的新闻
  • 适合个人做的网站有哪些seo推广是什么工作
  • 做网站多少钱_西宁君博优选搜索排行榜
  • 做影视网站对服务器要求守游网络推广平台登陆
  • 游戏网站建设策划方案模板如何做公司网站推广
  • 网上购物网站开发开题报告百度搜索一下就知道
  • 太原做网站找谁南通网络推广
  • 山东网站建设企业自动点击器
  • 做php网站开发能赚钱吗软文范例大全100
  • 网站模版 模板google浏览器官网下载
  • 做女装代理需要自建网站么企业推广方案
  • 文化礼堂建设情况网站搜盘网
  • 商务网站开发的基本原则网页设计网站
  • 南宁比较有好的网站制作公司李勇seo的博客
  • 郑州做网站优化的公司六年级上册数学优化设计答案
  • 怎么建立滚动网站网推怎么做最有效
  • wordpress网站文件管理推广神器
  • 网站建设用啥技术杭州seo联盟
  • wordpress外联css百度seo网站优化
  • 68设计网站搜索引擎算法
  • ssh框架可以做网站么百度seo优化分析
  • 温州做网站公司有哪些排名前十的小说