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

滑动窗口模板(Java)

题目描述
有一个长为 𝑛 的序列 𝑎,以及一个大小为 𝑘 的窗口。现在这个从左边开始向右滑动,每次滑动一个单位,求出每次滑动后窗口中的最大值和最小值。

例如,对于序列 [1,3,−1,−3,5,3,6,7] 以及 𝑘=3,有如下过程:

输入格式
输入一共有两行,第一行有两个正整数 𝑛,𝑘。 第二行 𝑛 个整数,表示序列 𝑎

输出格式
输出共两行,第一行为每次窗口滑动的最小值
第二行为每次窗口滑动的最大值

代码:

package lanqiao;import java.util.*;public class Main {static int N = 1000010;static int[] f1 = new int[N];static int[] f2 = new int[N];static int[] a = new int[N];static int h = 1,t = 1;public static void main(String[] args) {Scanner sc = new Scanner(System.in);int n = sc.nextInt();int k = sc.nextInt();for(int i = 1;i <= n;i ++){a[i] = sc.nextInt();}//求最小值f1[1] = 1;for(int i = 1;i <= n;i ++){if(f1[h] <= i - k) h ++;while(t >= h && a[f1[t]] >= a[i]) t --;f1[++t] = i;if(i >= k){System.out.print(a[f1[h]] + " ");}}System.out.println();//求最大值f2[1] = 1;for(int i = 1;i <= n;i ++){if(f2[h] <= i - k) h ++;while(t >= h && a[f2[t]] <= a[i]) t--;f2[++t] = i;if(i >= k){System.out.print(a[f2[h]] + " ");}}}
}

相关文章:

  • JAVA-->方法的使用详解
  • 勒索病毒的策略与建议
  • 记录使用 Vue3 过程中的一些技术点
  • 一种最大重叠离散小波包特征提取和支持向量机的ECG心电信号分类方法(MATLAB 2018)
  • 【UE5.1 角色练习】08-物体抬升、抛出技能 - part2
  • shell脚本:将一维数组以二维数组显示
  • 设计模式 18 迭代器模式 Iterator Pattern
  • 【QT八股文】系列之篇章2 | QT的信号与槽机制及通讯流程
  • vb.net,C#强制结束进程,“优雅”的退出方式
  • MyBatisPlus学习笔记(二)
  • 【STL】C++ stack(栈) 基本使用
  • 你真的会使用Vue3的onMounted钩子函数吗?Vue3中onMounted的用法详解
  • Wpf 使用 Prism 实战开发Day28
  • 第三方软件测试机构进行验收测试的好处分享,需多少时间和费用?
  • python -【一】基础语法
  • android 一些 utils
  • avalon2.2的VM生成过程
  • ES6 ...操作符
  • express + mock 让前后台并行开发
  • GDB 调试 Mysql 实战(三)优先队列排序算法中的行记录长度统计是怎么来的(上)...
  • learning koa2.x
  • Logstash 参考指南(目录)
  • MySQL几个简单SQL的优化
  • php面试题 汇集2
  • RxJS: 简单入门
  • SAP云平台运行环境Cloud Foundry和Neo的区别
  • spring学习第二天
  • storm drpc实例
  • Terraform入门 - 3. 变更基础设施
  • Web Storage相关
  • Webpack 4 学习01(基础配置)
  • 从零到一:用Phaser.js写意地开发小游戏(Chapter 3 - 加载游戏资源)
  • 简单数学运算程序(不定期更新)
  • 前端学习笔记之观察者模式
  • 嵌入式文件系统
  • 使用 Docker 部署 Spring Boot项目
  • 微服务入门【系列视频课程】
  • 小李飞刀:SQL题目刷起来!
  • 学习使用ExpressJS 4.0中的新Router
  • 分布式关系型数据库服务 DRDS 支持显示的 Prepare 及逻辑库锁功能等多项能力 ...
  • 蚂蚁金服CTO程立:真正的技术革命才刚刚开始
  • ​​​​​​​​​​​​​​汽车网络信息安全分析方法论
  • # Apache SeaTunnel 究竟是什么?
  • #if #elif #endif
  • #LLM入门|Prompt#3.3_存储_Memory
  • #传输# #传输数据判断#
  • $.ajax()
  • (07)Hive——窗口函数详解
  • (2024最新)CentOS 7上在线安装MySQL 5.7|喂饭级教程
  • (Redis使用系列) SpirngBoot中关于Redis的值的各种方式的存储与取出 三
  • (Redis使用系列) Springboot 使用Redis+Session实现Session共享 ,简单的单点登录 五
  • (TipsTricks)用客户端模板精简JavaScript代码
  • (超简单)构建高可用网络应用:使用Nginx进行负载均衡与健康检查
  • (二)c52学习之旅-简单了解单片机
  • (二)斐波那契Fabonacci函数