news 2026/10/31 2:05:54

DeepSeek LeetCode 456. 132 模式 Java实现

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
DeepSeek LeetCode 456. 132 模式 Java实现

LeetCode 456. 132 模式

题目思路

判断是否存在下标 i < j < k,满足 nums[i] < nums[k] < nums[j]。

核心思想:从右往左遍历 + 单调栈

· 从右往左扫描,把当前元素看作 “1”(最小值)
· 用单调递减栈维护可能的 “3”(较大值)
· 用变量 second 记录已确定的 “2” 的最大值(即被弹出的栈元素)
· 当 nums[i] < second 时,说明存在 nums[i] < nums[k] < nums[j],返回 true

关键点:栈中被弹出的元素,代表它左边有更大的数(“3”),因此它可以作为 “2”;我们总是保留其中最大的那个作为 second,这样更容易让左边的数成为 “1”。

Java 代码

classSolution{publicbooleanfind132pattern(int[]nums){intn=nums.length;if(n<3)returnfalse;Deque<Integer>stack=newArrayDeque<>();// 单调递减栈(栈顶最小)intsecond=Integer.MIN_VALUE;// "2" 的最大候选值for(inti=n-1;i>=0;i--){// 当前的 nums[i] 作为 "1",只要小于 second 就成立if(nums[i]<second){returntrue;}// 维护单调递减栈;被弹出的元素可以成为 "2"while(!stack.isEmpty()&&nums[i]>stack.peek()){second=Math.max(second,stack.pop());}stack.push(nums[i]);}returnfalse;}}

复杂度分析

· 时间复杂度:O(n),每个元素最多进栈、出栈一次
· 空间复杂度:O(n),栈的最大容量

示例验证

以 nums = [3, 1, 4, 2] 为例(答案应为 true,1 < 2 < 4):

i nums[i] stack(栈底→栈顶) second 说明
3 2 [2] MIN 入栈
2 4 [4] 2 弹出 2,second=2;4 入栈
1 1 [4, 1] 2 1 < 2,但 1 不能作为 “1”(因为它右边没有比 2 小的"3"已成立?)——1 < second 成立,返回 true

等等——这里其实是 nums[1]=1 < second=2,直接返回 true。验证:i=1, j=2, k=3,1 < 2 < 4 ✓。

其他可行解法(对比)

解法 时间 空间 说明
单调栈(上述) O(n) O(n) 最优解,面试推荐
TreeMap 从右扫描 O(n log n) O(n) 维护右侧已访问元素中 > nums[i] 的最小值
暴力三层循环 O(n³) O(1) 仅用于理解题意
预处理 min + 双层循环 O(n²) O(n) 左最小值数组 + 右侧扫描

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/10/31 2:05:18

Python+AI基础入门:小白3个月轻松掌握大模型,收藏这份超全学习路线!

文章为想转AI的程序员提供了一条清晰的3个月学习路线。首月需精通Python基础和API调用&#xff1b;次月掌握LangChain、LlamaIndex及Agent、模型微调、RAG等核心技能&#xff1b;末月通过项目实战巩固知识。作者强调此路线旨在培养能快速上手的AI工程师&#xff0c;而非研究员。…

作者头像 李华
网站建设 2026/10/31 2:05:18

小白程序员轻松上手搭建高效知识库,AI Agent全程辅助(附实操五步)

本文介绍了一种高效的知识管理方法&#xff0c;源自姜胡说&#xff0c;强调知识库服务于做事而非单纯囤积资料。作者提供了完整的五步实操方法&#xff0c;帮助读者无需深入学习理论即可快速上手。核心内容包括明确本地文件夹、Obsidian和AI Agent&#xff08;WorkBuddy&#x…

作者头像 李华
网站建设 2026/10/31 2:03:52

【VFX工具链源码拆解 01】总体架构:大型项目特效流程的程序化落地

从协作痛点到编辑器工作台 本文以本地 Scripts 源码为依据&#xff0c;梳理一套 Unity 特效工具链从需求痛点、技术选型到编辑器落地的过程。重点讨论两个具有代表性的流程&#xff1a;按特效 ID 从多个 Perforce 路径同步资源&#xff0c;以及依据场景命名和备注配置完成场景装…

作者头像 李华
网站建设 2026/10/31 2:03:47

加油加满还是加半箱?

小区车友群有个万年吵架话题&#xff0c;每隔俩月就得翻出来对线一次——加油到底是加满好&#xff0c;还是只加半箱好&#xff1f;半箱派向来底气十足&#xff0c;张嘴就是"老司机都加半箱"&#xff1a;车轻了就省油&#xff0c;积少成多一年能省好几百。说这话的人…

作者头像 李华