2024.3.3每日一題

LeetCode

用隊列實現棧

題目鏈接:225. 用隊列實現棧 - 力扣(LeetCode)

題目描述

請你僅使用兩個隊列實現一個后入先出(LIFO)的棧,并支持普通棧的全部四種操作(pushtoppopempty)。

實現 MyStack 類:

  • void push(int x) 將元素 x 壓入棧頂。
  • int pop() 移除并返回棧頂元素。
  • int top() 返回棧頂元素。
  • boolean empty() 如果棧是空的,返回 true ;否則,返回 false

注意:

  • 你只能使用隊列的基本操作 —— 也就是 push to backpeek/pop from frontsizeis 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

提示:

  • 1 <= x <= 9
  • 最多調用100pushpoptopempty
  • 每次調用 poptop 都保證棧不為空

**進階:**你能否僅用一個隊列來實現棧。

思路

棧:后進先出,元素從頂端入棧,從頂端出棧

隊列:先進先出,元素從后端入列,從前端出列

代碼

C++
class MyStack {
public:queue<int> queue1;queue<int> queue2;MyStack() {}void push(int x) {queue2.push(x); // 將元素入隊到queue2while(!queue1.empty()){ // 將queue1的全部元素依次出隊并入列到queue2queue2.push(queue1.front());queue1.pop();}swap(queue1,queue2);}int pop() {int r = queue1.front();queue1.pop();return r;}int top() {int r = queue1.front();return r;}bool empty() {return queue1.empty();}
};/*** Your MyStack object will be instantiated and called as such:* MyStack* obj = new MyStack();* obj->push(x);* int param_2 = obj->pop();* int param_3 = obj->top();* bool param_4 = obj->empty();*/
Java
class MyStack {Queue<Integer> queue1;Queue<Integer> queue2;Queue<Integer> temp;public MyStack() {queue1 = new LinkedList<Integer>();queue2 = new LinkedList<Integer>();}public void push(int x) {queue2.offer(x);while(!queue1.isEmpty()){queue2.offer(queue1.poll());}temp = queue1;queue1 = queue2;queue2 = temp;}public int pop() {return queue1.poll();}public int top() {return queue1.peek();}public boolean empty() {return queue1.isEmpty();}
}/*** Your MyStack object will be instantiated and called as such:* MyStack obj = new MyStack();* obj.push(x);* int param_2 = obj.pop();* int param_3 = obj.top();* boolean param_4 = obj.empty();*/

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/716293.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/716293.shtml
英文地址,請注明出處:http://en.pswp.cn/news/716293.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

如何取消ChatGPT 4.0的自動續費和會員訂閱(chatgpt4.0自動續費嗎)

如何取消ChatGPT 4.0的自動續費和會員訂閱 ChatGPT 4.0自動續費是否存在 是的&#xff0c;ChatGPT 4.0 Plus會員服務存在自動續費功能。 ChatGPT 4.0 Plus會員服務自動續費 ChatGPT Plus會員服務的自動續費機制用戶在購買ChatGPT 4.0 Plus會員服務后&#xff0c;系統會自動…

npm ERR! code ERESOLVE

1、問題概述&#xff1f; 執行npm install命令的時候報錯如下&#xff1a; tangxiaochuntangxiaochundeMacBook-Pro stf % npm install npm ERR! code ERESOLVE npm ERR! ERESOLVE unable to resolve dependency tree npm ERR! npm ERR! While resol…

LeetCode102.二叉樹的層序遍歷

題目 給你二叉樹的根節點 root &#xff0c;返回其節點值的 層序遍歷 。 &#xff08;即逐層地&#xff0c;從左到右訪問所有節點&#xff09;。 示例 輸入&#xff1a;root [3,9,20,null,null,15,7] 輸出&#xff1a;[[3],[9,20],[15,7]]輸入&#xff1a;root [1] 輸出&am…

SpringCloud-MQ消息隊列

一、消息隊列介紹 MQ (MessageQueue) &#xff0c;中文是消息隊列&#xff0c;字面來看就是存放消息的隊列。也就是事件驅動架構中的Broker。消息隊列是一種基于生產者-消費者模型的通信方式&#xff0c;通過在消息隊列中存放和傳遞消息&#xff0c;實現了不同組件、服務或系統…

2024全新手機軟件下載應用排行、平臺和最新發布網站,采用響應式織夢模板

這是一款簡潔藍色的手機軟件下載應用排行、平臺和最新發布網站&#xff0c;采用響應式織夢模板。 主要包括主頁、APP列表頁、APP詳情介紹頁、新聞資訊列表、新聞詳情頁、關于我們等模塊頁面。 地 址 &#xff1a; runruncode.com/php/19703.html 軟件程序演示圖&#xff1a;…

最小高度樹-力扣(Leetcode)

題目鏈接 最小高度樹 思路&#xff1a;本質上是找到樹中的最長路徑。當最長路徑上中間點&#xff08;若路經長為偶數&#xff0c;則中間點僅有一個&#xff0c;否者中間點有兩個&#xff09;作為根時&#xff0c;此時樹高最小。 Code: class Solution { public://拓撲排序int…

【深度優先搜索】【樹】【C++算法】2003. 每棵子樹內缺失的最小基因值

作者推薦 動態規劃的時間復雜度優化 本文涉及知識點 深度優先搜索 LeetCode2003. 每棵子樹內缺失的最小基因值 有一棵根節點為 0 的 家族樹 &#xff0c;總共包含 n 個節點&#xff0c;節點編號為 0 到 n - 1 。給你一個下標從 0 開始的整數數組 parents &#xff0c;其中…

第二講:用geth和以太坊交互

一&#xff1a;安裝geth brew install ethereum geth github網址&#xff1a; https://github.com/ethereum/go-ethereum 二&#xff1a; 用geth連接以太坊 以太坊有主網絡&#xff08;Ethereum Mainnet&#xff09;&#xff0c;有測試網絡&#xff08;Sepolia、Goerli 等等…

設計模式學習筆記 - 設計原則 - 5.依賴反轉原則(控制反轉、依賴反轉、依賴注入)

前言 今天學習 SOLID 中的最后一個原則&#xff0c;依賴反轉原則。 本章內容&#xff0c;可以帶著如下幾個問題&#xff1a; “依賴反轉” 這個概念指的是 “誰跟誰” 的 “什么依賴” 被反轉了&#xff1f; “反轉” 這兩個字該如何理解。我們還經常聽到另外兩個概念&#…

【分塊三維重建】【slam】LocalRF:逐步優化的局部輻射場魯棒視圖合成(CVPR 2023)

項目地址&#xff1a;https://localrf.github.io/ 題目&#xff1a;Progressively Optimized Local Radiance Fields for Robust View Synthesis 來源&#xff1a;KAIST、National Taiwan University、Meta 、University of Maryland, College Park 提示&#xff1a;文章用了s…

【Spring】20 解析Spring注解驅動的容器配置

文章目錄 注解 vs. XMLJavaConfig選項注解配置注解注入順序注解處理器實際運用總結 Spring 框架一直以 XML 配置為主導&#xff0c;然而隨著注解驅動配置的引入&#xff0c;我們不禁思考&#xff1a;是注解配置優于 XML 呢&#xff0c;還是反之&#xff1f;本篇博客將介紹 Spri…

如何將一個遠程git的所有分支推到另一個遠程分支上

如何將一個遠程git的所有分支推到另一個遠程分支上 最初有 12 個分支 執行 git remote add 遠程名 遠程git地址 git push 遠程名 --tags "refs/remotes/origin/*:refs/heads/*"之后就變成 26個分支

小項目:2024/3/2

一、TCP機械臂測試 代碼&#xff1a; #include <myhead.h> #define SER_IP "192.168.125.254" //服務器端IP #define SER_PORT 8888 //服務器端端口號#define CLI_IP "192.168.199.131" //客戶端IP #define CLI_P…

100條數據秒殺,如何避免超賣【待補充更細的資料】

使用Redis預減庫存&#xff1a;利用Redis的原子性操作&#xff0c;如DECR命令&#xff0c;來預先減少庫存。當商品庫存數量在Redis中被減少到0時&#xff0c;后續的請求將被拒絕&#xff0c;從而確保只有限定數量的訂單能夠進入后續流程。悲觀鎖&#xff1a;在數據庫層面使用悲…

面試筆記系列八之JVM基礎知識點整理及常見面試題

目錄 類實例化加載順序 類的實例化順序 JVM創建對象的過程 JVM的運行機制 直接內存&#xff08;Direct Memory&#xff09; JVM后臺運行的線程 JVM 常用參數 標準參數中比較有用的&#xff1a; 非標準參數又稱為擴展參數&#xff0c;比較有用的是 非Stable參數 class初…

【DAY07 軟考中級備考筆記】數據結構:線性結構,數組矩陣和廣義表

數據結構&#xff1a;線性結構&#xff0c;數組矩陣和廣義表 3月2日 – 天氣&#xff1a;晴 1. 線性表的定義和存儲方式 > 這一部分只需要掌握下面的兩點即可&#xff1a; > > * 采用順序存儲和鏈式存儲的特點 > * 單鏈表的插入和刪除操作 2. 棧和隊列 > 這里需…

35 Spring整合Elasticsearch

文章目錄 Spring整合Elasticsearch引入依賴配置Elasticsearch解決沖突 使用ElasticsearchSpring Data Elasticsearch建立映射關系常用方法添加數據修改數據刪除數據搜索數據&#xff08;es核心&#xff09;步驟構造搜索條件 并 應用進行查詢使用查詢結果 Spring整合Elasticsear…

Spring注解之事務 @Transactional

目錄 Spring 對事務的支持 事務 Transactional Spring 對事務的支持 提醒一次&#xff1a;你的程序是否支持事務首先取決于數據庫 &#xff0c;比如使用 MySQL 的話&#xff0c;如果你選擇的是 innodb 引擎&#xff0c;那么恭喜你&#xff0c;是可以支持事務的。但是&#x…

鴻蒙Harmony應用開發—ArkTS聲明式開發(通用屬性:Popup控制)

給組件綁定popup彈窗&#xff0c;并設置彈窗內容&#xff0c;交互邏輯和顯示狀態。 說明&#xff1a; 從API Version 7開始支持。后續版本如有新增內容&#xff0c;則采用上角標單獨標記該內容的起始版本。 popup彈窗的顯示狀態在onStateChange事件回調中反饋&#xff0c;其顯…

opencv內存溢出del釋放變量 (python)

報錯&#xff1a; cv2.error: OpenCV(3.4.17) D:\a\opencv-python\opencv-python\opencv\modules\core\src\alloc.cpp:73: error: (-4:Insufficient memory) Failed to allocate 12211548 bytes in function ‘cv::OutOfMemoryError’ 檢查內存代碼 import psutil# 獲取當前進…