当前位置: 首页> 娱乐> 影视 > 潍坊网络推广网站建设_保定网站制作软件_如何建立网站的步骤_爱站数据官网

潍坊网络推广网站建设_保定网站制作软件_如何建立网站的步骤_爱站数据官网

时间:2025/7/13 0:46:35来源:https://blog.csdn.net/m0_65150762/article/details/146542937 浏览次数:0次
潍坊网络推广网站建设_保定网站制作软件_如何建立网站的步骤_爱站数据官网

科技馆内有一台虚拟观景望远镜,它可以用来观测特定纬度地区的地形情况。该纬度的海拔数据记于数组 heights ,其中 heights[i] 表示对应位置的海拔高度。请找出并返回望远镜视野范围 limit 内,可以观测到的最高海拔值。

示例 1:

输入:heights = [14,2,27,-5,28,13,39], limit = 3
输出:[27,27,28,28,39]
解释:滑动窗口的位置                最大值
---------------               -----
[14 2 27] -5 28 13 39          27
14 [2 27 -5] 28 13 39          27
14 2 [27 -5 28] 13 39          28
14 2 27 [-5 28 13] 39          28
14 2 27 -5 [28 13 39]          39

LCR 183. 望远镜中最高的海拔 - 力扣(LeetCode) 

 

class Solution {public int[] maxAltitude(int[] heights, int limit) {if(heights.length == 0 || limit == 0) return new int[0];Deque<Integer> deque = new LinkedList<>();int[] res = new int[heights.length - limit + 1];int index = 0;for(int i = 0; i < heights.length; i++){while(!deque.isEmpty() && heights[deque.peekLast()] <= heights[i]){deque.pollLast();}deque.add(i);if(deque.peekLast() - limit == deque.peek()){deque.poll();}if((i + 1) >= limit){res[index] = heights[deque.peek()];index++;}}return res;}
}

选择用一个双端队列来维护窗口

首先队列里保存的是数组索引,方便比较窗口长度。

然后队头是要维护最大值的,所以如果不大于队头的元素会从队尾出去。

注意一下出队的条件。这个题写过一遍就不难。

关键字:潍坊网络推广网站建设_保定网站制作软件_如何建立网站的步骤_爱站数据官网

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

责任编辑: