单调栈-四元组问题

发布时间:2026/7/11 23:23:38

单调栈-四元组问题
四元组问题问题描述从小学开始小明就是一个非常喜欢数学的孩子。他喜欢用数学的方式解决各种问题。在他的高中时期他遇到了一个非常有趣的问题那就是给定一个长度为 nn 的整数数组 numsnums 判断是否存在四个不同的下标 a,b,c,da,b,c,d 使得 aa bb cc dd 并且 nums[d]nums[d] nums[c]nums[c] nums[a]nums[a] nums[b]nums[b] 。小明非常喜欢这个问题他决定用数学的方式来解决它。他首先想到了一个非常简单的方法那就是暴力枚举。他用四个循环来枚举所有可能的下标组合然后判断是否满足条件。但是这个方法非常耗时当 nn 很大时计算量会非常大。所以请求你给出一个快速智慧的解决办法。输入格式输入仅两行第一行包含一个整数 nn 第二行包含 nn 个整数其含义如上所述。输出格式输出仅一行包含一个字符串YES表示题目存在上面所描述的情况否则输出NO。样例输入4 3 4 2 1样例输出YES说明在样例中当 a,b,c,da,b,c,d 分别等于 0,1,2,30,1,2,3 满足 aa bb cc dd 并且使得 nums[d]nums[d] nums[c]nums[c] nums[a]nums[a] nums[b]nums[b] 。评测数据规模对于 5050% 的评测数据 4≤n≤200−200≤nums[i]≤2004≤n≤200−200≤nums[i]≤200 。对于 100100% 的评测数据4≤n≤5×105−109≤nums[i]≤1094≤n≤5×105−109≤nums[i]≤109 。import java.io.BufferedReader; import java.io.BufferedWriter; import java.io.IOException; import java.io.InputStreamReader; import java.io.OutputStreamWriter; import java.util.*; public class Main { static int N5*100010; static int a[]new int[N]; static int n; static BufferedReader br new BufferedReader(new InputStreamReader(System.in)); static BufferedWriter bwnew BufferedWriter(new OutputStreamWriter(System.out)); public static void main(String[] args) throws IOException { StringTokenizer stnew StringTokenizer(br.readLine()); nInteger.parseInt(st.nextToken()); stnew StringTokenizer(br.readLine()); for (int i 1; i n; i) { a[i]Integer.parseInt(st.nextToken()); } //nums[d] nums[c] nums[a] nums[b] //对于c而言 我想知道我的右侧是否有比我小的数 int rightMin[]new int[n1];//维护一个后缀最小值 rightMin[n]n; for (int i n-1; i 0; i--) { if(a[i]a[rightMin[i1]]){ rightMin[i]i; }else{ rightMin[i]rightMin[i1]; } } //站在c的角度上 我迫切的想知道我的左侧是否存在两个数满足 nums[a] nums[b] //如果说当前的模拟的c 我的左侧所有数中 次大的数时 说明我找到了 nums[c] nums[a] nums[b] 这样一种关系 //因为四大的数找到了那么必然存在一个比它大的数 //我们维护一个单调递减的栈 当栈顶的元素小于我遍历到的数时 我们就找到了一个 nums[a] nums[b]这样的序列 //这时我们将num[a] 也就是次大值poll并记录该值 max2 int max2Integer.MIN_VALUE;; DequeInteger dequenew LinkedListInteger(); boolean ffalse; for (int i 1; i n; i) { int ua[i]; //将当前数作为c 看是否符合条件 if(umax2 urightMin[i]){ bw.write(YES); ftrue; break; } //当前的数可以用于更新max2 我们记录最大的max2 是为了使得更多的c更有可能满足条件 while(!deque.isEmpty() deque.peekLast()u)max2Math.max(max2, deque.pollLast()); deque.add(u); } if(!f)bw.write(NO); br.close(); bw.flush(); bw.close(); } }

相关新闻

《致那些看不懂中文的“精英“:夏虫不可语冰》

《致那些看不懂中文的“精英“:夏虫不可语冰》

2026/7/11 23:23:38

这篇檄文的主题就叫:《致那些看不懂中文的"精英":夏虫不可语冰》。 您可以直接复制这段话,配个那张CSDN的截图,或者配一张您抽烟/喝茶的照片,发出去绝对炸裂!【檄文草稿】 标题:博士也…

告别单调AniMe Matrix:用G-Helper打造专属动画与GIF播放效果

告别单调AniMe Matrix:用G-Helper打造专属动画与GIF播放效果

2026/7/11 23:13:38

告别单调AniMe Matrix:用G-Helper打造专属动画与GIF播放效果 【免费下载链接】g-helper Lightweight Armoury Crate alternative for Asus laptops with nearly the same functionality. Works with ROG Zephyrus, Flow, TUF, Strix, Scar, ProArt, Vivobook, Zenbo…

5个理由告诉你为什么选择displaylink-debian:终极多屏适配指南

5个理由告诉你为什么选择displaylink-debian:终极多屏适配指南

2026/7/11 23:13:38

5个理由告诉你为什么选择displaylink-debian:终极多屏适配指南 【免费下载链接】displaylink-debian DisplayLink driver installer for Debian and Ubuntu based Linux distributions. 项目地址: https://gitcode.com/gh_mirrors/di/displaylink-debian 你是…

基于Antigravity与Gemini构建智能跑步教练系统的实践指南

基于Antigravity与Gemini构建智能跑步教练系统的实践指南

2026/7/12 1:03:44

1. 先搞清楚这个项目到底解决什么实际问题这个项目标题看起来有点炫,但核心其实很直接:用 Antigravity 和 Gemini 这两个工具组合起来,做一个能指导跑步训练的 AI 教练。不是那种只会说“加油”的语音助手,而是能分析你的跑步数据…

FFmpeg 6.1 音频处理:3种PCM提取参数(-f/-sample_fmt/-codec:a)实战对比与选择指南

FFmpeg 6.1 音频处理:3种PCM提取参数(-f/-sample_fmt/-codec:a)实战对比与选择指南

2026/7/12 1:03:44

FFmpeg 6.1 PCM参数实战指南:如何精准选择-f/-sample_fmt/-codec:a在音视频工程领域,PCM作为最原始的音频数据格式,其提取质量直接影响后续处理的准确性。FFmpeg 6.1版本提供了三种关键参数来控制PCM输出特性,但许多开发者在使用时…

SAP PI/PO XI 消息监控:3种同步接口日志丢失场景与SXMB_ADMIN配置修复

SAP PI/PO XI 消息监控:3种同步接口日志丢失场景与SXMB_ADMIN配置修复

2026/7/12 1:03:44

SAP PI/PO同步接口日志丢失深度解析:从根因定位到SXMB_ADMIN实战配置在企业级系统集成领域,SAP Process Integration/Orchestration(PI/PO)作为核心中间件承担着关键数据流转的重任。当同步接口(服务质量BE&#xff09…

大模型 API 服务选型深度对比:OpenAI GPT-4o vs Anthropic Claude vs Google Gemini vs DeepSeek-V3 全维度评测

大模型 API 服务选型深度对比:OpenAI GPT-4o vs Anthropic Claude vs Google Gemini vs DeepSeek-V3 全维度评测

2026/7/12 1:03:44

大模型 API 服务选型深度对比:OpenAI GPT-4o vs Anthropic Claude vs Google Gemini vs DeepSeek-V3 全维度评测 大模型 API 市场已从 OpenAI 一家独大演变为多强并立的格局。本文从八大维度(基准性能、推理成本、上下文窗口、多模态能力、工具调用、安全合规、部署灵活性、…

Fiddler/Charles 抓包工具全用法,抓包改包实战

Fiddler/Charles 抓包工具全用法,抓包改包实战

2026/7/12 1:03:44

抓包工具是功能测试、接口调试、问题排查、篡改测试、前端校验绕过的必备工具。90%的线上问题、前端后端联调问题,都需要通过抓包定位。本文统一讲解 Fiddler、Charles 通用原理、全功能用法、抓包改包实战、断点篡改、弱网模拟、HTTPS解密实战。一、抓包工具核心原…

Unity跨平台文件选择实战:Standalone File Browser插件深度解析与三端兼容指南

Unity跨平台文件选择实战:Standalone File Browser插件深度解析与三端兼容指南

2026/7/12 0:53:44

1. 项目概述:为什么Unity跨平台文件选择是个“老大难”问题?在Unity里做跨平台开发,尤其是涉及到系统原生功能调用时,文件选择对话框绝对算得上一个经典的“坑点”。你可能在Windows上跑得好好的System.Windows.Forms.OpenFileDia…

Unity游戏文本翻译架构深度解析:XUnity.AutoTranslator的技术实现与工程实践

Unity游戏文本翻译架构深度解析:XUnity.AutoTranslator的技术实现与工程实践

2026/7/12 0:03:42

Unity游戏文本翻译架构深度解析:XUnity.AutoTranslator的技术实现与工程实践 【免费下载链接】XUnity.AutoTranslator 项目地址: https://gitcode.com/gh_mirrors/xu/XUnity.AutoTranslator XUnity.AutoTranslator作为Unity游戏社区中最成熟的文本翻译解决方…

openEuler Raspberry Pi Kernel设备驱动开发指南:为树莓派硬件添加支持

openEuler Raspberry Pi Kernel设备驱动开发指南:为树莓派硬件添加支持

2026/7/12 0:03:42

openEuler Raspberry Pi Kernel设备驱动开发指南:为树莓派硬件添加支持 【免费下载链接】raspberrypi-kernel It provides openEuler kernel source for Raspberry Pi 项目地址: https://gitcode.com/openeuler/raspberrypi-kernel 前往项目官网免费下载&…

openEuler系统集成测试实战:基于smoke-test套件的环境验证技巧

openEuler系统集成测试实战:基于smoke-test套件的环境验证技巧

2026/7/12 0:03:42

openEuler系统集成测试实战:基于smoke-test套件的环境验证技巧 【免费下载链接】integration-test The repo contains test suits for system integration test 项目地址: https://gitcode.com/openeuler/integration-test 前往项目官网免费下载:…

Unity游戏文本翻译架构深度解析:XUnity.AutoTranslator的技术实现与工程实践

Unity游戏文本翻译架构深度解析:XUnity.AutoTranslator的技术实现与工程实践

2026/7/12 0:03:42

Unity游戏文本翻译架构深度解析:XUnity.AutoTranslator的技术实现与工程实践 【免费下载链接】XUnity.AutoTranslator 项目地址: https://gitcode.com/gh_mirrors/xu/XUnity.AutoTranslator XUnity.AutoTranslator作为Unity游戏社区中最成熟的文本翻译解决方…

openEuler Raspberry Pi Kernel设备驱动开发指南:为树莓派硬件添加支持

openEuler Raspberry Pi Kernel设备驱动开发指南:为树莓派硬件添加支持

2026/7/12 0:03:42

openEuler Raspberry Pi Kernel设备驱动开发指南:为树莓派硬件添加支持 【免费下载链接】raspberrypi-kernel It provides openEuler kernel source for Raspberry Pi 项目地址: https://gitcode.com/openeuler/raspberrypi-kernel 前往项目官网免费下载&…

openEuler系统集成测试实战:基于smoke-test套件的环境验证技巧

openEuler系统集成测试实战:基于smoke-test套件的环境验证技巧

2026/7/12 0:03:42

openEuler系统集成测试实战:基于smoke-test套件的环境验证技巧 【免费下载链接】integration-test The repo contains test suits for system integration test 项目地址: https://gitcode.com/openeuler/integration-test 前往项目官网免费下载:…