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

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

题目

科技馆内有一台虚拟观景望远镜,它可以用来观测特定纬度地区的地形情况。该纬度的海拔数据记于数组 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

提示:

你可以假设输入总是有效的,在输入数组不为空的情况下:

1 <= limit <= heights.length
-10000 <= heights[i] <= 10000

代码

class Solution {
public int[] maxAltitude(int[] nums, int k) {
if(nums == null || nums.length <= 1){
return nums;
}

    LinkedList<Integer> queue = new LinkedList<>();
    int[] res = new int[nums.length - k + 1];
    int index = 0;

    //K

    for(int i = 0; i < nums.length; i++){
        while(!queue.isEmpty() && nums[queue.peekLast()] <= nums[i]){
            queue.pollLast();
        }

        queue.add(i);

        if(queue.peekLast() - k == queue.peek()){
            queue.poll();
        }

        if(i + 1 >= k){
            res[index++] = nums[queue.peek()];
        }
    }

    return res;
}

}
时间复杂度:O(n)
额外空间复杂的:O(k)


http://www.kler.cn/a/443030.html

相关文章:

  • Kotlin学习(一)
  • Flink三种集群部署模型
  • springboot+vue使用easyExcel实现导出功能
  • 计算机网络之---无线网络的传输介质
  • 【Docker】docker compose 安装 Redis Stack
  • ubuntu20下编译linux1.0 (part1)
  • Linux文件属性 --- 硬链接、所有者、所属组
  • 15.初识接口1 C#
  • thinkphp:try-catch捕获异常
  • flutter --no-color pub get 超时解决方法
  • 51单片机-内部扩展RAM的应用
  • nlp初学者怎么入门?需要学习哪些?
  • MySQL技术:深入理解索引与优化
  • 提升PHP技能:18个实用高级特性
  • Linux docker离线部署
  • 基于Armitage的MSF自动化集成攻击实践
  • Android显示系统(12)- 向SurfaceFlinger申请Buffer
  • 超详细 springboot 整合 Mock 进行单元测试!本文带你搞清楚!
  • 图(dfs与bfs)算法2
  • 如何配置VMware虚拟机的网络,使局域网内其它电脑可以访问?
  • git退掉远程仓库里的某个修改和记录
  • 鸿蒙风起,未来已来——云学堂鸿蒙应用认证开营啦!
  • C语言中信号量:<semaphore.h>头文件
  • 2024年12月18日Github流行趋势
  • vue3渲染el-tree组件,给默认选中的节点,禁用所有子节点
  • C# 实现 WinForm 全屏置顶