中文亚洲精品无码_熟女乱子伦免费_人人超碰人人爱国产_亚洲熟妇女综合网

當前位置: 首頁 > news >正文

俄羅斯做貨代的網(wǎng)站公司網(wǎng)站設計哪家好

俄羅斯做貨代的網(wǎng)站,公司網(wǎng)站設計哪家好,wordpress最新文章列表插件,網(wǎng)站是gbk編碼怎么做mip改造100道面試必會算法-32-二叉樹右視圖&用棧實現(xiàn)隊列 給定一個二叉樹的 根節(jié)點 root,想象自己站在它的右側(cè),按照從頂部到底部的順序,返回從右側(cè)所能看到的節(jié)點值。 示例 1: 輸入: [1,2,3,null,5,null,4] 輸出: [1,3,4]示例 2: 輸入: [1,n…

100道面試必會算法-32-二叉樹右視圖&用棧實現(xiàn)隊列

給定一個二叉樹的 根節(jié)點 root,想象自己站在它的右側(cè),按照從頂部到底部的順序,返回從右側(cè)所能看到的節(jié)點值。

示例 1:

img

輸入: [1,2,3,null,5,null,4]
輸出: [1,3,4]

示例 2:

輸入: [1,null,3]
輸出: [1,3]

示例 3:

輸入: []
輸出: []

解決思路

解決這個問題,可以采用層序遍歷二叉樹的方式,并在每一層中只記錄最右側(cè)的節(jié)點值。

解決方法

  1. 初始化:首先初始化一個空列表 res 用于存儲結(jié)果,并確保給定的根節(jié)點不為空。
  2. 層序遍歷:利用隊列來實現(xiàn)層序遍歷,首先將根節(jié)點入隊。
  3. 遍歷節(jié)點:在每一層中,記錄當前層的節(jié)點數(shù),然后依次彈出隊列中的節(jié)點。
  4. 記錄右視圖:每次彈出節(jié)點時,檢查該節(jié)點是否是當前層的最后一個節(jié)點,如果是,則將其值添加到結(jié)果列表中。
  5. 入隊子節(jié)點:同時,將彈出節(jié)點的左右子節(jié)點入隊。
  6. 返回結(jié)果:最后返回結(jié)果列表 res。

代碼實現(xiàn)

class Solution {// 定義函數(shù),用于獲取二叉樹的右視圖public List<Integer> rightSideView(TreeNode root) {// 初始化結(jié)果列表List<Integer> res = new ArrayList<>();// 如果根節(jié)點為空,直接返回空結(jié)果列表if (root == null)return res;// 初始化隊列,用于層序遍歷二叉樹LinkedList<TreeNode> queue = new LinkedList();// 將根節(jié)點入隊queue.push(root);// 開始循環(huán)遍歷二叉樹while (!queue.isEmpty()) {// 記錄當前層的節(jié)點數(shù)int count = queue.size();while (count > 0) {// 彈出隊首元素TreeNode node = queue.poll();// 如果是當前層最后一個節(jié)點,將其值加入結(jié)果列表if (count == 1) {res.add(node.val);}// 將左子節(jié)點入隊if (node.left != null) {queue.offer(node.left);}// 將右子節(jié)點入隊if (node.right != null) {queue.offer(node.right);}count--;}}return res;}
}

時間復雜度為 O(n)

用棧實現(xiàn)隊列

請你僅使用兩個棧實現(xiàn)先入先出隊列。隊列應當支持一般隊列支持的所有操作(push、pop、peek、empty):

實現(xiàn) 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(雙端隊列)來模擬一個棧,只要是標準的棧操作即可。

示例 1:

輸入:
["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

問題概述

需要設計一個隊列的實現(xiàn),但是使用棧作為底層數(shù)據(jù)結(jié)構(gòu)。具體來說,需要實現(xiàn) pushpoppeekempty 四種操作。

解決思路

為了使用棧來實現(xiàn)隊列,可以使用兩個棧,一個用于存儲隊列元素,另一個用于輔助操作。主要思路是保持一個棧始終為空,當需要執(zhí)行 poppeek 操作時,將所有元素從一個棧中彈出并壓入另一個棧,以保證隊列順序。

解決方法

  1. 初始化:使用兩個棧 AB 分別用來存儲隊列元素和輔助操作。
  2. 入隊操作 (push):將元素壓入棧 A,相當于隊尾入隊。
  3. 出隊操作 (pop):首先調(diào)用 peek 方法獲取隊首元素,然后從棧 B 中彈出棧頂元素,相當于隊首出隊,并返回隊首元素。
  4. 查看隊首元素 (peek):如果棧 B 不為空,直接返回棧 B 的棧頂元素;否則,如果棧 A 也為空,說明隊列為空,返回 -1;否則,將棧 A 中的所有元素依次彈出并壓入棧 B,以實現(xiàn)隊列元素的倒序,然后返回棧 B 的棧頂元素。
  5. 判斷隊列是否為空 (empty):當棧 A 和棧 B 都為空時,說明隊列為空。
class MyQueue {private Stack<Integer> A; // 棧A用來存儲隊列元素private Stack<Integer> B; // 棧B用來輔助操作public MyQueue() {A=new Stack<>(); // 初始化棧AB=new Stack<>(); // 初始化棧B}public void push(int x) {A.push(x); // 將元素壓入棧A,相當于隊尾入隊}public int pop() {int re=peek(); // 獲取棧B的棧頂元素,即隊首元素B.pop(); // 彈出棧B的棧頂元素,相當于隊首出隊return re; // 返回隊首元素}public int peek() {if(!B.isEmpty()) return B.peek(); // 如果棧B不為空,則直接返回棧B的棧頂元素if(A.isEmpty()) return -1; // 如果棧A也為空,說明隊列為空,返回-1while(!A.isEmpty()){B.push(A.pop()); // 將棧A中的元素依次彈出并壓入棧B,實現(xiàn)隊列元素倒序}return B.peek(); // 返回棧B的棧頂元素,即隊首元素}public boolean empty() {return A.isEmpty() && B.isEmpty(); // 如果棧A和棧B都為空,說明隊列為空}
}}return B.peek(); // 返回棧B的棧頂元素,即隊首元素}public boolean empty() {return A.isEmpty() && B.isEmpty(); // 如果棧A和棧B都為空,說明隊列為空}
}
http://www.risenshineclean.com/news/36653.html

相關文章:

  • 創(chuàng)建網(wǎng)站要多少錢seo競價排名
  • 江門住房城鄉(xiāng)建設廳網(wǎng)站列舉常見的網(wǎng)絡營銷工具
  • 做五金建材這幾個網(wǎng)站手機百度高級搜索
  • 代做廣聯(lián)達 的網(wǎng)站淺議網(wǎng)絡營銷論文
  • 鹽田區(qū)網(wǎng)站建設百度網(wǎng)站ip地址
  • 專門做資產(chǎn)負債表結(jié)構(gòu)分析的網(wǎng)站上海市人大常委會
  • 賓利棋牌在哪個網(wǎng)站做的廣告成都seo服務
  • 免費的視頻api接口seo排名計費系統(tǒng)
  • 網(wǎng)站中英文轉(zhuǎn)換怎么做軟文標題
  • 佛山專業(yè)建設網(wǎng)站平臺營銷策劃方案怎么寫?
  • 網(wǎng)站備案接入商名稱seo計費系統(tǒng)開發(fā)
  • 廣州白云做網(wǎng)站濟寧百度推廣電話
  • 成都網(wǎng)站制作公司成人速成班有哪些專業(yè)
  • 黃驊港開發(fā)區(qū)谷歌seo是什么意思
  • 網(wǎng)站建設演講稿全網(wǎng)營銷系統(tǒng)1700元真實嗎
  • 專門做化妝的招聘網(wǎng)站品牌營銷策略四種類型
  • 手機電影網(wǎng)站怎么做河池網(wǎng)站seo
  • 啟銘網(wǎng)站建設5118關鍵詞挖掘工具
  • 石家莊移動端網(wǎng)站建設百度發(fā)布
  • 濰坊網(wǎng)站優(yōu)化sem和seo是什么意思
  • 網(wǎng)站怎么優(yōu)化推廣怎么搜索關鍵詞
  • 慈溪外貿(mào)公司網(wǎng)站優(yōu)化營商環(huán)境的意義
  • 動態(tài)網(wǎng)站建設04章在線測試關鍵詞排名優(yōu)化易下拉霸屏
  • 北京12345網(wǎng)上投訴平臺seo搜索引擎優(yōu)化報價
  • 免費政府網(wǎng)站html模板百度首頁快速排名系統(tǒng)
  • 廣西建設廳網(wǎng)站是什么關鍵詞優(yōu)化需要從哪些方面開展?
  • 宣武網(wǎng)站建設低價刷贊網(wǎng)站推廣
  • 網(wǎng)站域名綁定seo搜索優(yōu)化專員招聘
  • 免費網(wǎng)絡翻外墻軟件寧波seo高級方法
  • 濰坊哪里能找到做網(wǎng)站的seo廣告平臺