Leetcode記錄 棧與佇列

2022-09-10 18:09:11 字數 1104 閱讀 6475

想到未來如果換工作/run出去找工作也需要演算法

計畫跟著**隨想錄開始刷題,但是解題過程中發現**隨想錄主要用c++,j**a的**沒有特別的友好,

於是記錄下自己做不出的題目以及微調過的**

**隨想錄題解

class solution else if(c == '+')else if(c == '-')else if(c == '*')else if(c == '/')

}return stack.pop();

}private boolean isope(string s)

}

大頂堆

class solution 

priorityqueue> queue = new priorityqueue<>((e1, e2) -> e2.getvalue() - e1.getvalue());

//建大頂堆,塞進去全部,然後彈出來前k個即可

//建小頂堆的思路反而是,塞進去全部,把小的彈出來,留k個大的,但顯然大頂堆比較麻煩,需要逐個取出來剩下的

queue.addall(map.entryset());

int ans = new int[k];

for (int i = 0; i < k && !queue.isempty(); ++i)

return ans;

}}

小頂堆

class solution 

priorityqueue> queue = new priorityqueue<>((e1,e2) -> e1.getvalue() - e2.getvalue());

//建大頂堆,塞進去全部,然後彈出來前k個即可

//建小頂堆的思路反而是,塞進去全部,把小的彈出來,留k個大的,但顯然大頂堆比較麻煩,需要逐個取出來剩下的

queue.addall(map.entryset());

int ans = new int[k];

while(queue.size()>k)

for(int i = 0 ; i < k ;i++)

return ans;

}}

LeetCode 棧與佇列

用乙個佇列就可以實現棧 取元素時要把佇列尾元素取出 最後進入佇列的元素 把前n 1個元素放到佇列尾並彈出,這樣佇列的頭部就是最後進入佇列的元素了,取出他即可 class mystack void push int x intpop int res que.front que.pop return r...

leetcode 棧和佇列

20.有效的括號 給定乙個只包括 的字串,判斷字串是否有效。有效字串需滿足 左括號必須用相同型別的右括號閉合。左括號必須以正確的順序閉合。注意空字串可被認為是有效字串。示例 1 輸入 輸出 true 示例 2 輸入 輸出 true 示例 3 輸入 輸出 false 示例 4 輸入 輸出 false ...

LeetCode棧和佇列

棧和佇列 棧是限定僅在表尾進行插入和刪除操作的後進先出 lifo 的線性表 佇列是只允許在表的一端進行插入,在另一端刪除元素的先進先出 fifo 的線性表 225.用佇列實現棧 使用佇列實現棧的下列操作 注意 思路 為了滿足棧的特性,即最 棧的元素最先出棧,在使用佇列實現棧時,應滿足佇列前端的元素是...