LeetCode练习47:用栈实现队列

AI原生应用评测:主流大语言模型性能对比 任务适配性:是否匹配应用的核心任务(如代码生成需强逻辑推理,内容创作需强创意性);上下文能力:处理长序列(如10万+字文档)的理解与生成能力;可靠性:幻觉(Hallucination)率、事实准确性、安全合规性;性价比:API调用成本、延迟、 scalability(扩展能力)。AI原生应用的核心是LLM与应用场景的深度协同。 阅读详情

LeetCode链接:力扣

题目:

请你仅使用两个栈实现先入先出队列。队列应当支持一般队列支持的所有操作(push、pop、peek、empty):

实现 MyQueue 类:

  • void push(int x) 将元素 x 推到队列的末尾
  • int pop() 从队列的开头移除并返回元素
  • int peek() 返回队列开头的元素
  • boolean empty() 如果队列为空,返回 true ;否则,返回 false

说明:

  • 你 只能 使用标准的栈操作 —— 也就是只有 push to top, peek/pop from top, size, 和 is empty 操作是合法的。
  • 你所使用的语言也许不支持栈。你可以使用 list 或者 deque(双端队列)来模拟一个栈,只要是标准的栈操作即可。

示例:

输入:
["MyQueue", "push", "push", "peek", "pop", "empty"]
[[], [1], [2], [], [], []]
输出:
[null, null, null, 1, 1, false]

解释:
MyQueue myQueue = new MyQueue();
myQueue.push(1); // queue is: [1]
myQueue.push(2); // queue is: [1, 2] (leftmost is front of the queue)
myQueue.peek(); // return 1
myQueue.pop(); // return 1, queue is [2]
myQueue.empty(); // return false

代码:

class MyQueue {
    private Stack<Integer> s1 = new Stack<>();
    private Stack<Integer> s2 = new Stack<>();
    private int front;

    public MyQueue() {

    }
    
    public void push(int x) {
        if(s1.isEmpty()){
            front = x;
        }
        s1.push(x);
    }
    
    public int pop() {
        if(s2.isEmpty()){
            while(!s1.isEmpty()){
                s2.push(s1.pop());
            }
        }
        return s2.pop();
    }
    
    public int peek() {
        if(!s2.isEmpty()){
            return s2.peek();
        }
        return front;
    }
    
    public boolean empty() {
        return s1.isEmpty() && s2.isEmpty();
    }
}

/**
 * Your MyQueue object will be instantiated and called as such:
 * MyQueue obj = new MyQueue();
 * obj.push(x);
 * int param_2 = obj.pop();
 * int param_3 = obj.peek();
 * boolean param_4 = obj.empty();
 */

YOLO-World:从入门到实战的多模态目标检测全指南 想象一下,你给模型一张“公园”的图片,再输入文字“红色的郁金香”,它能直接在图中框出所有红色郁金香的位置——这就是多模态目标检测:结合图像视觉信息和文本语义信息,同时完成“是什么”(分类)和“在哪里”(定位)的任务。传统目标检测(如YOLOv5、YOLOv8)只能识别预定义的类别(比如训练时学过“猫”“狗”),但多模态目标检测摆脱了“类别预定义”的限制,只要文本能描述,它就能检测,这就是“开放词汇检测(Open-Vocabulary Detection)”的魅力。 阅读详情

相关推荐

操作系统课程项目 OS project —— Pintos from Project 1 to Project 3

Pintos Project 陪伴我们操作系统课程大半个学期了…… 虽然做了这么长时间,个人能力有限,pintos代码,看过的可能也就看懂了一半吧,更不用说没看过的了…… 但是也找到了一些有价值的资料,整理一下,供后辈们参考…… 关于环境的问题,最好是用ubuntu 16.04 windows用户不要折腾装双系统了,特别是win10,动不动更新一下,说不定双系统就出问题了,linux...

Deserted Land 8554

【LeetCode+JavaGuide打卡】Day10 232

请你仅使用两个队列实现一个后入先出(LIFO)的栈,并支持普通栈的全部四种操作(push、top、pop 和 empty)。请你仅使用两个栈实现先入先出队列。boolean empty() 如果栈是空的,返回 true;void push(int x) 将元素 x 推到队列的末尾。void push(int x) 将元素 x 压入栈顶。int pop() 从队列的开头移除并返回元素。int peek() 返回队列开头的元素。int pop() 移除并返回栈顶元素。int top() 返回栈顶元素。

2401_85407119的博客 574

DeepSeek的训练与优化流程

DeepSeek的训练体系不仅追求极致的计算效率,更注重将物理规律、人类知识、安全伦理深度融入训练过程,其"效率-安全-可解释性"三角平衡的设计理念,为行业提供了重要参考范式。

m0_56896669的博客 1437

leetcode 232.用栈实现队列 JAVA

leetcode 232.用栈实现队列 JAVA

weixin_44028403的博客 514

SpringBoot 指标监控——Actuator

1、 访问:localhost:8000/actuator 设置健康监控显示具体情况 metrics http://localhost:8000/actuator/metrics/jvm.gc.live.data.size 定制化health信息 //利用构造器,在注册中心中添加cityService.saveCity.count指标 public CityServiceImpl(MeterRegistry meter...

weixin_44302046的博客 4631

ComfyUI-Impact-Subpack插件安装避坑指南:为什么你的UltralyticsDetectorProvider节点还是找不到?

本文深入解析了ComfyUI-Impact-Subpack插件的安装与排障问题,特别是针对UltralyticsDetectorProvider节点缺失的常见问题提供了详细的解决方案。从底层机制到高阶应用,涵盖了手动安装、模型配置、性能优化等关键步骤,帮助用户彻底解决插件依赖关系断裂问题。

Jerry的专栏 1152

Java实现 LeetCode 232 用栈实现队列

232. 用栈实现队列 使用栈实现队列的下列操作: push(x) – 将一个元素放入队列的尾部。 pop() – 从队列首部移除元素。 peek() – 返回队列首部的元素。 empty() – 返回队列是否为空。 示例: MyQueue queue = new MyQueue(); queue.push(1); queue.push(2); queue.peek(); // 返回 1 que...

南 墙 1万+

从UC3842的FB脚到COMP脚:一次讲透反激电源两种光耦反馈接法的选择与实战

本文深入探讨了UC3842 PWM控制器在反激式开关电源设计中的两种光耦反馈接法:FB脚与COMP脚方案。通过分析信号极性差异、稳定性特点及动态响应性能,提供场景化选型指南和可靠性设计要点,帮助工程师优化反馈环路设计,提升系统稳定性与效率。特别针对TL431和PC817等关键元件在温度漂移、老化衰减等实际问题给出解决方案。

weixin_28717683的博客 709

[LeetCode]232. 用栈实现队列(java实现)

[LeetCode]232. 用栈实现队列(java实现)1. 题目2. 读题(需要重点注意的东西)3. 解法4. 可能有帮助的前置习题5. 所用到的数据结构与算法思想6. 总结 1. 题目 2. 读题(需要重点注意的东西) 要求时间复杂度为O(n)—不能又复杂的多层循环 栈的特性—先进后出 思路:使用两个栈stackIn作为输入栈,stackOut为输出栈,将stackIn中的元素pop出来,push到stackOut中,此时,stackOut栈可以视为一个队列。 3. 解法 class MyQueue

cloud的博客 266

基于CANopenNode协议栈在正点原子探索者开发板上进行移植

配置好之后进行采用keil IDE进行代码生成即可,还需要进行CANopenNode的代码集成,并参照demo进行代码移植。发送完成后心跳包以1s的周期重新开始发送。正点原子的开发板引出的是CAN1接口。这里的心跳时间间隔设置为100ms。则将心跳包周期设置为0。

wangfandashe的博客 4701

零基础学simulink仿真建模--使用Simulink来构建一个混合动力无人机中燃料电池与锂电池协同控制的仿真模型

延长飞行时间:燃料电池的能量密度高于锂电池,适合长时间稳定供电。提高功率密度:锂电池能够快速响应瞬时高功率需求,比如起飞和加速阶段。优化能源管理:通过有效的能量管理系统,可以根据实际需求动态调整燃料电池和锂电池的工作状态,从而提高整体效率。通过上述步骤,我们简要介绍了如何基于Simulink实现混合动力无人机中燃料电池与锂电池协同控制的仿真模型。

amy_mhd的博客 190

【LeetCode】No.232. 用栈实现队列 -- Java Version

No.232. 用栈实现队列。请你仅使用两个栈实现先入先出队列。队列应当支持一般队列支持的所有操作(push、pop、peek、empty)。

汤姆lazy的优快云博客 536

ElectrolyteGPT:首个电池电解液逆向设计的生成式 AI 系统 —— 算法原理与复现解析

数据驱动的重要性:1100 万→100 万的精心筛选,比单纯增大模型更有效领域适配:fLine 表示法、正则分词、化学感知的数据增强(SMILES randomization)都是关键小模型的力量:6M 参数在特定化学空间的表现,远超通用大模型在相同任务上的零样本能力条件生成的极限:10 维条件导致模型崩溃,提示我们需要更好的条件编码策略(如 diffusion guidance、RLHF-style 偏好优化)未来方向配方实验验证。

ASKCOS博客 123

LeetCode题解(0232):用栈实现队列(Python)

题目:原题链接(简单) 与题目0225配套,互为相反。 解法 执行用时 Ans 1 (Python) 40ms (>63.47%) Ans 2 (Python) 36ms (>84.25%) LeetCode的Python执行用时随缘,只要时间复杂度没有明显差异,执行用时一般都在同一个量级,仅作参考意义。 解法一(使用queue的栈实现): from queue import LifoQueue class MyQueue: def __init__(s

长行 557

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

温度PID控制PLC程序

温度PID稳定控制程序,适用于欧姆龙PLC,对其他PLC也具有很大参考价值

DAY 47 leetcode 232--栈与队列.用栈实现队列

请你仅使用两个栈实现先入先出队列。队列应当支持一般队列支持的所有操作(

Fantasydg的博客 336

ssm框架搭建

这个是一个在idea上成功跑起来的ssm框架项目,保存在这里方便以后使用直接下载

Leetcode刷题java之232用栈来实现队列

执行结果: 通过 显示详情 执行用时 :87 ms, 在所有Java提交中击败了69.93%的用户 内存消耗 :34.3 MB, 在所有Java提交中击败了47.71%的用户 题目: 使用栈实现队列的下列操作: push(x) -- 将一个元素放入队列的尾部。 pop() -- 从队列首部移除元素。 peek() -- 返回队列首部的元素。 empty() -- 返回队列是否...

逆水行舟,不进则退 449

华为的C语言编程规范.pdf

华为技术有限公司内部技术规范。本规范制定了编写C语言程序的基本原则、规则和建议。从代码的清晰、简洁、可测试、安全、程序效率、可移植各个方面对C语言编程作出了具体指导。

力扣刷题笔记

一节更比十节强

qq_44836676的博客 3793

leetcode 剑指offer 09.用两个栈实现队列

原题 剑指offer 09.用两个栈实现队列 2020年6月30日 每日一题 题解 方法一 既然题目说了是两个栈实现队列,那么我们不妨设立两个栈,一个用于正常的push,另一个辅助用作从尾部pop。 a栈的作用是在push的时候加入元素,在执行加入元素的时候,没有b栈什么事儿。而当有指令“从尾部删除”的时候,我们需要把a栈中的元素全部pop并马上push进b中,这样b中从上到下就a中元素从早到晚的元素了。当b没空的时候,不用关心a,只是从b里面往外pop就好;但是b空了的时候,需要重新把a中的元素,全部p

zhuruihe2014的博客 258

剑指offer——用两个栈实现队列 Java

@author: sdubrz @date: 2020.05.04 难度: 简单 @e-mail: lwyz521604#163.com 题目来自《剑指offer》 电子工业出版社 用两个栈实现一个队列。队列的声明如下,请实现它的两个函数 appendTail 和 deleteHead ,分别完成在队列尾部插入整数和在队列头部删除整数的功能。(若队列中没有元素,deleteHead 操...

仰起脸笑得像满月 436

用栈实现队列

用两个栈实现栈的思路如下:栈s1装新压入的元素,顺序是“倒过来的”(先进后出),要出栈的话就把s1存的元素倒入s2中,这时候s2中的元素的出栈顺序与队列的出队顺序相同。执行的步骤如下:1. 入队时,检测s1是否已满,未满则入栈。 2. 出队时,检测s2中是否还有元素,若不为空,直接出栈即可;若s2为空,将s1中的元素倒入s2后再弹出s2的栈顶。 具体代码如下: 1 #incl...

dongchuan5097的博客 127

leetcode-探索(队列+栈)小结

1.用栈实现队列 /* 用两个栈来实现队列 执行用时:0 ms, 在所有 Java 提交中击败了100.00%的用户 内存消耗:37.5 MB, 在所有 Java 提交中击败了7.14%的用户 */ private Stack<Integer> s1 ; private Stack<Integer> s2 ; /** Initialize your data structure here. */ public MyQueue() { s1

qq_41458842的博客 205

LeetCode--255--用队列实现栈(java版)

使用队列实现栈的下列操作: push(x) -- 元素 x 入栈 pop() -- 移除栈顶元素 top() -- 获取栈顶元素 empty() -- 返回栈是否为空 注意: 你只能使用队列的基本操作-- 也就是push to back,peek/pop from front,size, 和is empty这些操作是合法的。 你所使用的语言也许不支持队列。你可...

weixin_34296641的博客 213

13. leetCode--剑指Offer09用两个栈实现队列

用两个栈实现一个队列。队列的声明如下,请实现它的两个函数 appendTail 和 deleteHead ,分别完成在队列尾部插入整数和在队列头部删除整数的功能。(若队列中没有元素,deleteHead 操作返回 -1 )

weixin_45267102的博客 233

数据结构与算法:队列&栈&BFS&DFS

本文介绍队列&栈&BFS&DFS

诸神缄默不语的博客 659

剑指Offer09.用两个栈实现队列

09.用两个栈实现队列 题目 用两个栈实现一个队列。队列的声明如下,请实现它的两个函数 appendTail 和 deleteHead ,分别完成在队列尾部插入整数和在队列头部删除整数的功能。(若队列中没有元素,deleteHead 操作返回 -1 ) 示例 1: 输入: [“CQueue”,“appendTail”,“deleteHead”,“deleteHead”] [[],[3],[],[]] 输出:[null,null,3,-1] 示例 2: 输入: [“CQueue”,“deleteHead”

qq_50596778的博客 168

leetcode 剑指 Offer 09. 用两个栈实现队列

题目地址 题目太怪了!!! java中的stack Stack是Vector的一个子类,它实现了一个标准的后进先出的栈。 单可以index访问。 常见操作如下 s.push(); s.peek(); s.pop() Dquen The stack is a great example of single responsibility; it’s supposed to implement LIFO and only LIFO behaviour. Returns an iterator over t

qq_38420683的博客 144
上一篇: LeetCode练习46:重复子字符串
下一篇: LeetCode练习48:逆波兰表达式求值
三金samkam
博客等级 码龄9年 463粉丝 119原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

三金samkam

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值