大家好,最近再寫LeetCode,
遇到了這題 "用兩個Stack來實作一個Queue"
我的想法是 Queue 是 FIFO的概念,
使用lisked list和兩個headPtr及TailPtr分別鎖住頭跟尾
push就加到尾端,pop就從頭搬出。
就可以簡單的完成queue,
那想請問的是這題目"用兩個Stack來實作一個Queue"
需要用到兩個stack的主要用意是甚麼?
有甚麼樣的應用會使用到類似的方法。
順便想問大家,
做了leetcode的題目,挫折感好高
連easy的題目有時候都做不出來,需要要參考其他人的作法
但網路上的神人都超強的,代碼一個比一個精簡,
想請問這樣的功力是天生的還是經驗累積?
大家都會參考別人的作法再變成自己的東西,
如果是天生的,是不是趕快轉行比較快?
謝謝大家
push all elements into s1, while s1 not empty: pops1, push into s2 這樣就反過來了pop queue: pop s2. push queue: pop all from s2, push all to s1, push new element to s1, pop all froms1, push all to s2