作者Jruffian ()
看板C_and_CPP
標題[討論] 用兩個 Stack 來實作一個 Queue
時間Tue Dec 22 02:49:30 2015
大家好,最近再寫LeetCode,
遇到了這題 "用兩個Stack來實作一個Queue"
我的想法是 Queue 是 FIFO的概念,
使用lisked list和兩個headPtr及TailPtr分別鎖住頭跟尾
push就加到尾端,pop就從頭搬出。
就可以簡單的完成queue,
那想請問的是這題目"用兩個Stack來實作一個Queue"
需要用到兩個stack的主要用意是甚麼?
有甚麼樣的應用會使用到類似的方法。
順便想問大家,
做了leetcode的題目,挫折感好高
連easy的題目有時候都做不出來,需要要參考其他人的作法
但網路上的神人都超強的,代碼一個比一個精簡,
想請問這樣的功力是天生的還是經驗累積?
大家都會參考別人的作法再變成自己的東西,
如果是天生的,是不是趕快轉行比較快?
謝謝大家
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 1.171.146.193
※ 文章網址: https://webptt.com/m.aspx?n=bbs/C_and_CPP/M.1450723773.A.C05.html
1F:→ fatrabitree: 就是純練習 12/22 03:03
※ 編輯: Jruffian (1.171.146.193), 12/22/2015 03:15:48
2F:→ fatrabitree: 基礎先打一下再去刷leetcode,至少資結跟演算法要看 12/22 03:27
3F:→ fatrabitree: 這樣至少會做easy 其他就靠經驗 12/22 03:28
4F:→ Jruffian: 謝謝F大的意見 12/22 04:07
5F:→ testPtt: 要out的時候放到另一個stack再放回去準備in 12/22 08:15
6F:→ testPtt: 通常做這種無聊事很偏硬體 可能是記憶體不配位址之類的 12/22 08:22
7F:推 andrenvq57: push all elements into s1, while s1 not empty: pop 12/22 14:31
8F:→ andrenvq57: s1, push into s2 這樣就反過來了 12/22 14:32
9F:→ andrenvq57: pop queue: pop s2. push queue: pop all from s2, pu 12/22 14:35
10F:→ andrenvq57: sh all to s1, push new element to s1, pop all from 12/22 14:35
11F:→ andrenvq57: s1, push all to s2 12/22 14:35
12F:→ HolyBugTw: 兩個杯子倒來倒去,人生能用上的話就有用(用的上嗎?) 12/22 15:35
13F:推 stupid0319: 用多個Stack來做Queue也是很常見啊,但不是刻意就是了 12/22 17:39