摘要: day13 - 栈与队列part03 力扣239. 滑动窗口的最大值 思路:利用单调队列,很难想的出来。 因为每次是进一个数,弹出一个数,因此没必要每次都进行排序,只需要拿到最大值即可。 用单调队列实现,是一个双向队列 pop()函数:如果要pop的值是队列头部的值,那么就弹出,否则不操作。 pus 阅读全文
posted @ 2023-09-18 19:11 笑忘书丶丶 阅读(12) 评论(0) 推荐(0)
摘要: day11 - 栈与队列part02 力扣20. 有效的括号 思路: 利用栈的特性,遇见左括号就把右括号压栈,遇见右括号,就对比和栈顶元素是否相同,不同就返回false。 代码 class Solution { public: stack<int> st; bool isValid(string s 阅读全文
posted @ 2023-09-18 13:34 笑忘书丶丶 阅读(8) 评论(0) 推荐(0)
摘要: day10 - 栈与队列 part01 力扣232. 用栈实现队列 思路:建立一个输入栈,一个输出栈,每次push进队列时,放进输入栈,出队列时,从输出栈弹出,如果输出栈是空的,就把输入栈的全部数都弹出到输出栈。 代码 class MyQueue { public: MyQueue() { } vo 阅读全文
posted @ 2023-09-18 11:32 笑忘书丶丶 阅读(11) 评论(0) 推荐(0)
摘要: KMP算法 KMP算法的作用 在一个字符串里面查找子串,比如字符串"aabbaabbaaf"中,查找"aabbaaf" KMP名字由来 三个老头,一个姓K,一个姓M,一个姓P 算法思想 这个算法很复杂,需要循序渐进解释。从人类的正常思考方式讲起。 暴力算法 如果让你从中寻找aabbaaf子串,你会怎 阅读全文
posted @ 2023-09-18 01:01 笑忘书丶丶 阅读(35) 评论(0) 推荐(0)