![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
栈与队列
leetcode栈与队列
why_1513
求实求真,大气大气
展开
-
前K个高频元素-力扣
本题想到的解法是使用哈希表首先统计数组中每个元素出现的次数,然后对出现次数进行排序,最后进行输出。看了题解学习到使用优先级队列 小顶堆来完成,小顶堆的排序规则由自己来定义。原创 2024-06-04 11:12:43 · 290 阅读 · 0 评论 -
滑动窗口最大值-力扣
使用deque双端队列来完成这道题,首先遍历前k个元素,将最大值的下标加入到队列中,如果新加入的下标对应的值大于队列前面下标对应的值,将其移除。这样保持这个队列维护的下标,对应的值时由大到小单调的。之后每新插一个元素进来,继续维护这个单调的队列,然后判断队列最前的下标,是否还在滑动窗口内,如果不在,则移除。原创 2024-06-03 20:27:30 · 415 阅读 · 0 评论 -
逆波兰表达式求值-力扣
使用 stoi() 函数可以将字符串转化为对应的int类型。逆波兰表达式是一种后缀表达式,所谓后缀就是指算符写在后面。原创 2024-06-03 19:19:31 · 191 阅读 · 0 评论 -
删除字符串中的所有相邻重复项-力扣
使用栈来完成这道题目,遍历字符串每个字符,如果栈为空,或者字符与栈顶字符不同,则插入字符;如果字符与栈顶字符相同,则说明出现重复项,从栈中删除栈顶元素。遍历完成后栈中的元素便是删除所有相邻重复项后的字符串,只不过出栈后所有元素的顺序时相反的。原创 2024-06-03 16:53:04 · 188 阅读 · 0 评论 -
有效的括号-力扣
第三种情况:遍历字符串匹配的过程中,栈已经为空了,没有匹配的字符了,说明右括号没有找到对应的左括号return false。第一种情况:已经遍历完了字符串,但是栈不为空,说明有相应的左括号没有右括号来匹配,所以return false。第二种情况:遍历字符串匹配的过程中,发现栈里没有要匹配的字符。所以return false。当字符串遍历完之后,栈是空的,就说明全都匹配了。原创 2024-06-03 14:29:22 · 328 阅读 · 0 评论 -
用队列实现栈-力扣
本题是使用队列来实现栈,在栈实现队列时,我们使用了输入栈和输出栈来调整输出顺序,但时队列不同,队列元素先入先出,即使使用两个队列,也没法调整到先入后出。因此做法是依次将队列元素出队,然后再让其入队,当出队元素是 最初的队列 最后一个元素时,它就是栈顶元素。在top()函数中,可以直接返回 que.back(),也能直接得到队列的最后一个元素。原创 2024-06-03 13:44:21 · 273 阅读 · 0 评论 -
用栈实现队列-力扣
每次需要对栈进行操作时,将栈a的元素一次挪到栈b中,那么栈b中元素的出栈顺序,正好就是队列元素出队的顺序,在操作完后再将栈b剩余元素挪到栈a中。比较基础的一道题目,考察使用栈来实现队列,使用两个栈来模拟队列,栈的规则是后进先出,而队列是先进先出。原创 2024-06-03 10:43:39 · 250 阅读 · 0 评论