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

LeetCode 225 用队列实现栈

题目: 请你仅使用两个队列实现一个后入先出(LIFO)的栈,并支持普通栈的全部四种操作(push、top、pop 和 empty)。

实现 MyStack 类:

  • void push(int x) 将元素 x 压入栈顶。
  • int pop() 移除并返回栈顶元素。
  • int top() 返回栈顶元素。
  • boolean empty() 如果栈是空的,返回 true ;否则,返回 false 。

注意:

你只能使用队列的基本操作 —— 也就是 push to back、peek/pop from front、size 和 is empty 这些操作。
你所使用的语言也许不支持队列。 你可以使用 list (列表)或者 deque(双端队列)来模拟一个队列 , 只要是标准的队列操作即可。

示例:

输入:
[“MyStack”, “push”, “push”, “top”, “pop”, “empty”]
[[], [1], [2], [], [], []]
输出:
[null, null, null, 2, 2, false]
解释:
MyStack myStack = new MyStack();
myStack.push(1);
myStack.push(2);
myStack.top(); // 返回 2
myStack.pop(); // 返回 2
myStack.empty(); // 返回 False

思路:

一个队列实现栈,先计算队列中元素的个数,再减一,将所有前边的元素依次添加到队列的后边去,这样最后一个进来的栈顶了

class Solution {
public:queue<int> que;void push(int x) {que.push(x);}int pop() {int size = que.size();size--;while (size--) {que.push(que.front());que.pop();}int result = que.front();que.pop();return result;}int top() {return que.back();}bool empty() {return que.empty();}
};int main() {Solution ss;ss.push(1);ss.push(2);cout << ss.top() << endl;ss.push(3);ss.pop();cout << ss.top() << endl;return 0;
}

相关文章:

LeetCode 225 用队列实现栈

题目&#xff1a; 请你仅使用两个队列实现一个后入先出&#xff08;LIFO&#xff09;的栈&#xff0c;并支持普通栈的全部四种操作&#xff08;push、top、pop 和 empty&#xff09;。 实现 MyStack 类&#xff1a; void push(int x) 将元素 x 压入栈顶。int pop() 移除并返回…...

Java对象的共享

要编写正确的并发程序&#xff0c;关键问题在于&#xff1a;在访问共享的可变状态时需要进行正确的管理。第2章介绍了如何通过同步来避免多个线程在同一时刻访问相同的数据&#xff0c;而本章将介绍如何共享和发布对象&#xff0c;从而使它们能够安全地由多个线程同时访问。这两…...

漏洞概述-0day漏洞利用原理(0)

0day专题对作者来说是一个很大的挑战,但无论有多难,作者会坚持进行大量的对新旧技术(精通二进制、汇编语言、操作系统底层的知识)实践并尽可能做到完善,最终利用技术发扬正能量。 bug 与漏洞 随着现代软件工业的发展,软件规模不断扩大,软件内部的逻辑也变得异常复杂。为…...

交换机的4种网络结构方式:级联方式、堆叠方式、端口聚合方式、分层方式

交换机是计算机网络中重要的网络设备之一&#xff0c;用于实现局域网&#xff08;LAN&#xff09;内部的数据转发和通信。交换机可以采用不同的网络结构方式来满足不同的网络需求和拓扑结构。本文将详细介绍交换机的四种网络结构方式&#xff1a;级联方式、堆叠方式、端口聚合方…...

firewall-cmd防火墙策略

--permanent 永久生效&#xff0c;重启后规则不消失 不执行 firewall-cmd --reload 命令配置不生效 添加单个IP为白名单 firewall-cmd --permanent --zonepublic -add-rich-rulerule family"ipv4" source address"IP" accept 删除白名单 firewall-cmd --…...

解决SQLException: Incorrect string value异常

java开发中会遇到如下异常&#xff1a; org.apache.ibatis.exceptions.PersistenceException: ### Error updating database. Cause: java.sql.SQLException: Incorrect string value: \xF0\x9F\x95\xB32:... for column baseInfo at row 1 ### The error may involve com.f…...

桂院校园导航 导入 与 配置教程

将 静态项目/云开发项目 文件夹下最新版本的 文件夹下的 项目 的整个文件夹 复制到项目路径下&#xff08;比如 D:\WeChatProjects&#xff09;&#xff0c;强烈建议不要直接扔在桌面上 云开发项目 需开通 云开发 功能&#xff08;首月免费&#xff0c;次月19.9&#xff09;&am…...

Linux上安装jdk Tomcat mysql redis

1.安装JDk 1.1这里使用xshell中xfxp进行文件的上传&#xff0c;将jdk二进制包上传到Linux服务器上 下载地址&#xff1a;Java Downloads | Oracle 或者这里有下载好的安装包&#xff1a;链接&#xff1a;https://pan.baidu.com/s/1ZSJxBDzDaTwCH2IG-d2Gig 提取码&#xff1a;…...

Postman中加url环境变量和token全局变量

环境变量引用 语法&#xff1a;{{变量名}} 环境变量分类 1. 全局变量&#xff1a;全局有效&#xff0c;在Postman中的任何集合中都可以使用该变量&#xff0c;作用域最大。 2. 环境变量&#xff1a;要申明环境变量&#xff0c;先要创建环境&#xff0c;然后在该环境中创建变…...

多线程事务回滚方法

多线程事务回滚方法 介绍案例演示线程池配置异常类实体类控制层业务层mapper工具类验证 解决方案使用sqlSession控制手动提交事务SqlSessionTemplate注入容器中改造业务层验证成功操作示例业务层改造 介绍 1.最近有一个大数据量插入的操作入库的业务场景&#xff0c;需要先做一…...

java单元测试( Hamcrest 断言)

java单元测试( Hamcrest 断言) 单元测试特征: 1 范围狭窄 2 限于单一类或方法 3 体积小 为什么要编写单元测试&#xff1f; 为了防止错误&#xff08;很明显&#xff01;&#xff09; 而且还可以提高开发人员的生产力&#xff0c;因为单元测试&#xff1a; (1) 帮助实施——在…...

讨论和总结 树模型 的三种序列化 方式的区别(模型存储大小、序列化所用内存、序列化速度)...

一、前言 本文总结常用树模型&#xff1a; rf&#xff0c;xgboost&#xff0c;catboost和lightgbm等模型的保存和加载&#xff08;序列化和反序列化&#xff09;的多种方式&#xff0c;并对多种方式从运行内存的使用和存储大小做对比 二、模型 2.1 安装环境 pip install xgboos…...

Halcon中的一些3D算子

一、记录一些Halcon里的关于3D的算子 1.read_object_model_3d 从文件读取一个3d模型 如下图&#xff0c;读的一个ply文件出来是个3d点云模型 2.visualize_object_model_3d 交互式展示3d模型 即上个算子读出来后&#xff0c;通过这个算子可以把3d模型显示出来旋转、平移&am…...

Android:Selector + Layer-lists 实现 AppCompatCheckBox

最近做项目涉及到一些UI相关的东东&#xff0c;虽然比较简单&#xff0c;但是也很有趣&#xff0c;写两篇简短的博客记录一下。 一."Selector 两张图片"实现 AppCompatCheckBox AppCompatCheckBox 是 androidx的一个widget&#xff1a;androidx.appcompat.widget.…...

TreeMap类型添加数据

package com.test.Test11;import java.util.*;public class Test02 {public static void main(String[] args) {/** 增加&#xff1a;put(K key,V value)* 删除&#xff1a;clear() remove(Object key)* 修改&#xff1a;* 查看&#xff1a;entrySet() get(Object key) keySet(…...

iOS 16 UI 设计系统免费在线使用方法

1、iOS 16 UI 设计系统中有什么&#xff1f; iOS 16 UI 设计系统通常包含以下组件和元素&#xff1a; 1. 按钮&#xff1a;包括操作按钮、图标按钮、导航按钮、滚动按钮、切换按钮、单选按钮、复选框按钮、呼叫按钮等各种类型的按钮。 2. 窗口和 UI 控件&#xff1a;包括标签…...

【接口测试】JMeter接口关联测试

‍‍1 前言 我们来学习接口管理测试&#xff0c;这就要使用到JMeter提供的JSON提取器和正则表达式提取器了&#xff0c;下面我们来看看是如何使用的吧。 2 JSON提取器 1、添加JSON提取器 在线程组右键 > 添加 > 后置处理器 > JSON提取器 2、JSON提取器参数说明 N…...

腾讯云服务器ping不通解决方法(公网IP/安全组/系统多维度)

腾讯云服务器ping不通什么原因&#xff1f;ping不通公网IP地址还是域名&#xff1f;新手站长从云服务器公网IP、安全组、Linux系统和Windows操作系统多方面来详细说明腾讯云服务器ping不通的解决方法&#xff1a; 目录 腾讯云服务器ping不通原因分析及解决方法 安全组ICMP协…...

【C++/嵌入式笔试面试八股】一、32.封装

封装 08.C++中struct和class的区别🍊 相同点 两者都拥有成员函数、公有和私有部分任何可以使用class完成的工作,同样可以使用struct完成不同点 两者中如果不对成员不指定公私有,struct默认是公有的,class则默认是私有的class默认是private继承, 而struct默认是public继…...

【算法】Transform to Chessboard 变为棋盘

文章目录 Transform to Chessboard 变为棋盘问题描述&#xff1a;分析代码 Transform to Chessboard 变为棋盘 问题描述&#xff1a; 一个 n x n 的二维网络 board 仅由 0 和 1 组成 。每次移动&#xff0c;你能任意交换两列或是两行的位置。 返回 将这个矩阵变为 棋盘 所需…...

别再用asyncio硬扛高并发了!无GIL环境下Python原生多线程性能翻倍的6个核心调优参数

第一章&#xff1a;Python无锁GIL环境下的并发模型演进全景Python长期以来受全局解释器锁&#xff08;GIL&#xff09;制约&#xff0c;导致多线程无法真正并行执行CPU密集型任务。近年来&#xff0c;随着CPython 3.12正式引入实验性“无GIL构建选项”&#xff08;--without-py…...

YOLOFuse实战案例:如何利用红外+RGB融合提升森林火情监测精度

YOLOFuse实战案例&#xff1a;如何利用红外RGB融合提升森林火情监测精度 1. 森林火情监测的痛点与挑战 森林火灾是全球性的生态灾难&#xff0c;每年造成巨大经济损失和生态破坏。传统监测手段主要依赖可见光摄像头和人工巡查&#xff0c;存在明显局限性&#xff1a; 夜间失…...

深入理解 MySQL 事务:从基础到实战,一篇吃透

在开发和运维 MySQL 数据库的过程中&#xff0c;事务&#xff08;Transaction&#xff09; 是绕不开的核心知识点&#xff0c;它是保证数据库数据安全、一致、可靠的基石。无论是电商下单、银行转账、支付结算&#xff0c;还是日常的业务数据操作&#xff0c;都离不开事务的支撑…...

Unity渲染流水线中的NDC空间:从齐次裁剪到屏幕坐标的完整转换指南

Unity渲染流水线中的NDC空间&#xff1a;从齐次裁剪到屏幕坐标的完整转换指南 在Unity引擎的渲染流水线中&#xff0c;理解NDC&#xff08;归一化设备坐标&#xff09;空间的作用至关重要。这个看似抽象的概念&#xff0c;实际上决定了3D场景如何最终呈现在2D屏幕上。对于想要深…...

如何自学使用关键字排名软件_关键字排名软件与SEO有什么关系

如何自学使用关键字排名软件_关键字排名软件与SEO有什么关系 在当今数字化时代&#xff0c;SEO&#xff08;搜索引擎优化&#xff09;已成为每一个网站运营者必不可少的技能。其中&#xff0c;关键字排名软件扮演了极其重要的角色。如何自学使用关键字排名软件呢&#xff1f;关…...

降低AI检测率哪个工具好?10款免费工具2026亲测,亲测有用

很多同学在写论文时都会遇到同一个难题&#xff1a;用AI辅助写完的内容&#xff0c;一查AIGC率高到离谱&#xff0c;被导师打回要求整改。后台最近也收到不少私信问&#xff1a;怎么才能有效降低AI检测率&#xff1f;有没有靠谱的免费降AI率工具推荐&#xff1f; 我自己当初也踩…...

Pixel Language Portal快速部署:Hunyuan-MT-7B支持ONNX Runtime加速推理

Pixel Language Portal快速部署&#xff1a;Hunyuan-MT-7B支持ONNX Runtime加速推理 1. 项目概述 像素语言跨维传送门(Pixel Language Portal)是一款基于Tencent Hunyuan-MT-7B核心引擎构建的创新翻译工具。与传统翻译软件不同&#xff0c;它将语言转换过程重新设计为一场16-…...

吃透哈希槽:Redis集群核心分片机制,从原理到实战避坑

在分布式Redis集群中&#xff0c;“数据如何均匀分片、节点如何高效协同”是核心难题。上一篇我们详解了一致性哈希&#xff0c;它通过环形结构解决了传统哈希的节点迁移痛点&#xff0c;但在Redis集群的实际落地中&#xff0c;官方并没有采用一致性哈希&#xff0c;而是选择了…...

AI赋能.NET开发:让快马平台智能生成Redis缓存与消息队列集成代码

最近在做一个电商系统的订单模块&#xff0c;发现缓存和消息队列这两个组件几乎是标配。但每次从零开始集成Redis和RabbitMQ都要查半天文档&#xff0c;配置各种连接字符串&#xff0c;写一堆样板代码。直到尝试用InsCode(快马)平台的AI辅助功能&#xff0c;才发现原来这些重复…...

C++的std--ranges中的验证编译期

C20引入的std::ranges库彻底改变了范围操作的方式&#xff0c;其中编译期验证机制是其最强大的特性之一。这种机制允许开发者在编译阶段捕获潜在错误&#xff0c;显著提升了代码的健壮性和性能。本文将深入探讨std::ranges中编译期验证的核心机制及其实际应用价值。编译时概念检…...