算法 滑动窗口最大值-(双指针+队列)
牛客网: BM45
题目: 数组num, 窗口大小size, 所有窗口内的最大值
思路: 用队列作为窗口,窗口内存储数组坐标,left = window[0], right从数组0开始遍历完数组,每次新增元素时,(1)先对窗口大小进行收缩到size大小范围,即right-left>=0时,left右移,即window弹出window[0],直到符合size范围;(2)对window从右侧开始所有比right坐标小的元素全部弹出window,最后将right处元素入队,此时以right为右端的窗口内的最大值即为num[window[0]];以此规律处理完num的所有元素。
注意: window进行收缩时要注意len(window)>0
代码:
// gopackage main
// import "fmt"/*** 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可** * @param num int整型一维数组 * @param size int整型 * @return int整型一维数组
*/
func maxInWindows( num []int , size int ) []int {// write code hereif len(num) < size || size == 0 || len(num) == 0 {return []int{}}res := []int{}window := []int{}for i := 0; i < size; i++ {for len(window) > 0 && num[window[len(window)-1]] < num[i] {window = window[:len(window)-1]}window = append(window, i)}res = append(res, num[window[0]])for i := size; i < len(num); i++ {for len(window)>0 && i - window[0] >= size {window = window[1:]}for len(window) > 0 && num[window[len(window)-1]] < num[i] {window = window[:len(window)-1]}window = append(window, i)res = append(res, num[window[0]])}return res
}
相关文章:
算法 滑动窗口最大值-(双指针+队列)
牛客网: BM45 题目: 数组num, 窗口大小size, 所有窗口内的最大值 思路: 用队列作为窗口,窗口内存储数组坐标,left window[0], right从数组0开始遍历完数组,每次新增元素时,(1)先对窗口大小进行收缩到size大小范围,即…...
Java 并发编程面试题——BlockingQueue
目录 1.什么是阻塞队列 (BlockingQueue)?2.BlockingQueue 有哪些核心方法?3.BlockingQueue 有哪些常用的实现类?3.1.ArrayBlockingQueue3.2.DelayQueue3.3.LinkedBlockingQueue3.4.PriorityBlockingQueue3.5.SynchronousQueue 4.✨BlockingQu…...
Ubuntu Nacos开机自启动服务
1、创建service文件 在/lib/systemd/system目录下创建nacos.service文件 [Unit] Descriptionalibaba nacos Afternetwork.target Documentationhttps://nacos.io/zh-cn/[Service] Userroot Grouproot Typeforking Environment"JAVA_HOME/usr/local/programs/jdk-8u333-li…...
C++核心编程--继承篇
4.6、继承 继承是面向对象三大特征之一 有些类与类之间存在特殊的关系,例如下图中: 我们发现,定义这些类的定义时,都拥有上一级的一些共性,还有一些自己的特性。那么我们遇到重复的东西时,就可以考虑使…...
小程序 解决自定义弹窗滚动穿透问题,解决弹窗背景内容滚动问题
方法一、catchtouchmove"true", 可以实现弹框背景不滚动,但是也会导致弹框自身无法滚动,如果你的弹窗本身是不需要滚动的,用这个方法是极佳的。 <view class"pop" catchtouchmove"true"> …...
win10搭建Selenium环境+java+IDEA(2)
接着上一个搭建环境开始叙述:win10系统x64安装java环境以及搭建自动化测试环境_荟K的博客-CSDN博客 上一步结尾的浏览器驱动,本人后面改到了谷歌浏览器.exe文件夹下: 这里需要注意,这个新路径要加载到系统环境变量中。 上一步下…...
抢先一步感受未来:Raspberry Pi 5正式发布!
在经历了几年全球供应链困境导致 Raspberry Pi 单板计算机的产能降低和零售价格上涨之后,今天终于迎来了更新。Raspberry Pi 4 上市四年后,今天Raspberry Pi 5正式发布!新推出的 Raspberry Pi 5 配备了经过大幅改进升级的SoC,带来…...
【教程】Ubuntu自动查看有哪些用户名与密码相同的账户,并统一修改密码
转载请注明出处:小锋学长生活大爆炸[xfxuezhagn.cn] 目录 背景说明 开始操作 修改密码 背景说明 有些用户为了图方便或者初始创建用户默认设置等原因,会将密码设置为与用户名相同,但这就使得非常不安全。甚至如果该用户具有sudo权限&#…...
基于 Python+DenseNet121 算法模型实现一个图像分类识别系统
项目展示 一、介绍 DenseNet(Densely Connected Convolutional Networks)是一种卷积神经网络(CNN)架构,2017年由Gao Huang等人提出。该网络的核心思想是密集连接,即每一层都接收其前面所有层的输出作为输…...
贪心算法-点灯问题
1、题目描述 给定一个字符串str,只由 ‘X’ 和 ‘.’ 两种字符构成。‘X’ 表示墙,不能放灯,点亮不点亮都可;’.’ 表示居民点,可以放灯,需要点亮。如果灯放在i位置,可以让 i-1,i 和…...
软件测试之单元测试自动化入门基础
单元测试自动化 所谓的单元测试(Unit Test)是根据特定的输入数据,针对程序代码中的最小实体单元的输入输出的正确性进行验证测试的过程。所谓的最小实体单元就是组织项目代码的最基本代码结构:函数,类,模块等。在Python中比较知名…...
93 # 实现 express 错误处理中间件
上一节实现了 express 的中间件,这一节来实现错误处理中间件 执行某一步出错了,统一规定调用 next 传递的参数就是错误信息 先看 express 实现的demo const express require("express"); const app express();app.use("/", (re…...
PHP 创建 MySQL 表
目录 PHP 创建 MySQL 表 使用 MySQLi 和 PDO 创建 MySQL 表 实例 (MySQLi - 面向对象) 实例 (MySQLi - 面向过程) 实例 (PDO) PHP 创建 MySQL 表 一个数据表有一个唯一名称,并有行和列组成。 使用 MySQLi 和 PDO 创建 MySQL 表 CREATE TABLE 语句用于创建 MySQ…...
中兴R5300 G4服务器iSAC管理员zteroot密码遗失的重置方法及IPV6地址启用设置
本文讲解中兴R5300 G4服务器BMC带外iSAC管理员zteroot密码遗失,无法登录时如何对其进行密码重置,以及iSAC启用IPV6地址的方法。 一、重置中兴R5300 G4服务器iSAC管理员zteroot密码 1、通过SSH登录到iSAC,默认用户名:sysadmin&am…...
大数据分布式处理框架Hadoop
大数据是什么 大数据容量常以TB、PB、甚至EB为单位,远超传统数据库的承载能力,无论入库还是查询都出现性能瓶颈。 Hadoop是什么 Hadoop是开源的分布式计算技术框架,用于处理大规模数据和实现分布式存储。 Hadoop核心组件 HDFS(…...
echarts学习总结
一、新建一个简单的Echarts 1、首先新建一个vue2的项目,项目中安装Echarts cnpm install echarts --save2、新建一个ref <template><div ref"myecharts" id"myecharts"></div> </template> 3、引入echarts <scri…...
与初至波相关的常见误解
摘要: 初至波是指检波器首次接收到的波. 对它的误解会使我们失去重要的信息. 1. 波从震源到检波器的传导过程 从震源产生波以后, 有些波通过地面直接传导到检波器, 这些称为直达波 (面波);有些在地层中传播,遇到两种地层的分界面时 产生波的反射,在原来地层中形成一种新波, …...
screenfull全屏、退出全屏、指定元素全屏的使用步骤
文章目录 页面全屏页面全屏完整代码 1.下载插件 建议下载指定版本5.1.0,不然可能有一个报错 npm install --save screenfull5.1.02.页面引入 import screenfull from "screenfull"页面全屏 3.在标签上绑定点击事件 <div click"handleFull"…...
问题 - 谷歌浏览器 network 看不到接口请求解决方案
谷歌浏览器 -> 设置 -> 重置设置 -> 将设置还原为其默认值 查看接口情况,选择 All 或 Fetch/XHR,勾选 Has blocked cookies 即可 如果万一还不行,卸载浏览器重装。 参考:https://www.cnblogs.com/tully/p/16479528.html...
Java:正则表达式的命名捕获组
命名捕获组格式 (?<year>.*)-(?<month>.*)-(?<date>.*)完整示例 package com.example.demo;import java.util.regex.Matcher; import java.util.regex.Pattern;public class RegexTests {public static void main(String[] args) {String text "2…...
Claude Code安装保姆级教程!超简单上手就会!
Claude Code驾驶手册 文章目录 Claude Code驾驶手册0 前言1 Claude Code基本安装配置1.1 系统配置及安装1.2 启动Claude Code1.3 配置API 0 前言 AI Agent 称为智能体(或人工智能代理),本质是自动执行任务的程序,核心在于让模型不…...
为什么工作越久的精英,最后都放弃了 MBTI?
很多人在职场和生活中遇到瓶颈,第一反应是去测测 MBTI 或者大五人格。 甚至很多大厂在招聘时,也会把这些测试当作金标准。但我观察到一个现象:真正处于决策核心的高净值人群,早就开始放弃这些“自报式”的性格测试了。为什么&…...
OpenClaw安全风险全解析:从架构漏洞到应对实践
OpenClaw安全风险全解析:从架构漏洞到应对实践 2026年初,一款名为OpenClaw(俗称“龙虾”)的开源AI智能体风靡全球,上线数月即斩获超20万GitHub星标,成为史上增长最快的开源项目之一。然而,随着大量用户将这一“可真正执行任务的AI”部署于个人电脑和生产环境,一系列触目…...
Bypass Paywalls Clean:3步轻松解锁付费内容的终极指南
Bypass Paywalls Clean:3步轻松解锁付费内容的终极指南 【免费下载链接】bypass-paywalls-chrome-clean 项目地址: https://gitcode.com/GitHub_Trending/by/bypass-paywalls-chrome-clean 在数字内容付费化的今天,你是否经常遇到想阅读的文章却…...
JavaScript代码保护实战:用javascript-obfuscator给你的前端穿上防弹衣
JavaScript代码保护实战:用javascript-obfuscator打造坚不可摧的前端防线 1. 为什么前端代码需要保护? 记得去年参与一个电商项目时,团队花三个月开发的核心促销算法,上线一周就被竞争对手完整"借鉴"。检查发现对方直…...
NaViL-9B多模态能力解析:从图像主体识别到图文联合推理实操手册
NaViL-9B多模态能力解析:从图像主体识别到图文联合推理实操手册 1. 平台概览 NaViL-9B是当前领先的原生多模态大语言模型,能够同时处理文本和视觉信息。不同于传统单一模态模型,它实现了文本与图像的深度融合理解,为用户提供了更…...
百度网盘提取码智能获取:3分钟解锁加密资源的秘密武器
百度网盘提取码智能获取:3分钟解锁加密资源的秘密武器 【免费下载链接】baidupankey 项目地址: https://gitcode.com/gh_mirrors/ba/baidupankey 还在为百度网盘上那些需要提取码的资源而烦恼吗?每次遇到心仪的学习资料、软件工具或影视资源&…...
3步接入钉钉机器人:OpenClaw+百川2-13B打造部门问答助手
3步接入钉钉机器人:OpenClaw百川2-13B打造部门问答助手 1. 为什么选择这个组合? 去年我们部门开始尝试用大模型解决内部知识检索问题。最初直接使用网页版对话工具,但遇到三个痛点:一是敏感业务数据不敢上传公有云;二…...
OCaml元编程终极指南:从语法扩展到代码生成的完整技术解析
OCaml元编程终极指南:从语法扩展到代码生成的完整技术解析 【免费下载链接】ocaml The core OCaml system: compilers, runtime system, base libraries 项目地址: https://gitcode.com/gh_mirrors/oc/ocaml OCaml元编程是函数式编程领域中最强大的技术之一&…...
OpenClaw云端体验方案:星图平台GLM-4.7-Flash镜像快速部署
OpenClaw云端体验方案:星图平台GLM-4.7-Flash镜像快速部署 1. 为什么选择云端沙盒环境 作为一个长期折腾本地环境的开发者,我深知在个人电脑上部署AI工具链的痛苦。从CUDA版本冲突到Python依赖地狱,每次尝试新工具都要花半天时间解决环境问…...
