2025年6月8日
摘要: 题目描述 思路:栈 由于前序的序列为根左右,那么我们这里的操作就是先以右子树入栈,随后左子树入栈,这样根据栈的性质,出栈时就能得到左在前,右在后的效果,具体的代码实现如下. class Solution { public: vector<int> preorderTraversal(TreeNode 阅读全文
posted @ 2025-06-08 19:07 sakura430 阅读(8) 评论(0) 推荐(0)
  2025年6月4日
摘要: 题目描述 代码实现 public: void traversal(TreeNode *cur , vector<int> &vec){ if(!cur) return; vec.push_back(cur->val); traversal(cur->left,vec); traversal(cur- 阅读全文
posted @ 2025-06-04 15:03 sakura430 阅读(11) 评论(0) 推荐(0)
  2025年5月26日
摘要: 题目描述 思路:哈希表+优先级队列 对于这样的一个序列,要统计出现频率前k个的元素,我们自然要利用一种办法来将重复元素的出现次数与这个元素映射起来,而这样的需求正是哈希表的强项所在。所以在一开始,我们可以使用哈希表,通过遍历数组的方式将数组中出现过的数字以及它出现的频率收集起来。接下来要处理的就是如 阅读全文
posted @ 2025-05-26 14:36 sakura430 阅读(16) 评论(0) 推荐(0)
  2025年5月24日
摘要: 题目描述 思路:单调队列 本题要获得滑动窗口的最大值,我们若是想用双指针暴力解法,在k较大以及数据量较大时会超时,时间复杂度为O(n*k),所以我们应该另寻他法。注意滑动窗口在每一轮循环中会将这一轮的第一个位置的元素抛出,然后在窗口尾部引入一个新的元素。那么我们应该这样考虑,每一轮更新强制性地将上一 阅读全文
posted @ 2025-05-24 09:19 sakura430 阅读(16) 评论(0) 推荐(0)
  2025年5月21日
摘要: 题目描述 思路:栈 人类理解的计算顺序对于计算机而言是无法理解的,由于计算机无法自主识别优先级,所以我们采取逆波兰式使得一个计算表达式可以避免对于括号加优先级的操作,依旧能够保持正确的模式。逆波兰式由此而生。本题我们可以采用栈的方式,在入栈过程中判断当前的字符串是否是运算符,若是运算符,我们就弹出栈 阅读全文
posted @ 2025-05-21 15:17 sakura430 阅读(7) 评论(0) 推荐(0)
  2025年5月17日
摘要: 题目描述 思路:单栈 对于出现的字符串相邻项除去问题,我们可以通过将整个字符串入栈,然后在入栈的过程中设置一个缓存位ch,ch用来存储栈顶的上一位元素。再每一次压栈后,我们令二者进行比较,若相同,则使当前栈顶及其上一位元素出栈,随后更新ch的值,直至整个字符串长度的循环结束。此时我们再将剩余的元素全 阅读全文
posted @ 2025-05-17 09:30 sakura430 阅读(11) 评论(0) 推荐(0)
  2025年5月16日
摘要: 题目描述 思路:双栈 对于括号的有效匹配,我们可以采用两个栈来实现。我们首先在输入栈中将整个串的元素入栈,随后由于括号的匹配特性,成对的括号中右括号会后入栈,这样的话我们在入栈完整个串之后,开始将右括号弹出并输入到输出栈,待到输入栈的栈顶均为左括号时开始进行两个栈的栈顶匹配,直至输入栈空,最后根据两 阅读全文
posted @ 2025-05-16 14:09 sakura430 阅读(16) 评论(0) 推荐(0)
  2025年5月15日
摘要: 题目描述 思路:“虚拟循环”队列 关于如何实现用队列模拟栈,这里主要介绍单队列实现的方式。整体的功能和上一道题相似,主要差别在于单队列实现栈的特性主要通过不断的出队列留“栈顶”,再将元素添加回来的方式。 代码如下 class MyStack { public: queue<int> que; MyS 阅读全文
posted @ 2025-05-15 14:09 sakura430 阅读(12) 评论(0) 推荐(0)
  2025年5月14日
摘要: 题目描述 思路:双栈 我们知道,队列的规则是先进先出,栈的规则是先进后出,要用栈实现队列的相关操作,我们只需要建立两个栈,一个栈用作输入,一个栈用作输出。当输入时将输入的数据存储在输入栈中,当输出或要查看队列的队首时,我们更新输出栈,然后使用输出栈进行相关的操作。 代码如下 class MyQueu 阅读全文
posted @ 2025-05-14 14:06 sakura430 阅读(9) 评论(0) 推荐(0)
  2025年5月11日
摘要: 题目描述 思路:kmp 这道题要找出字符串中第一个匹配的下标,那么我们首先应该解决的问题是如何正确的识别判断两个字符串之间是否匹配,那么这类问题KMP算法是最为有效的。我们可以通过采取KMP算法求出模式串的next数组,随后遍历主串与模式串进行比对,如果当前的元素不相等,我们就令模式串指针回退到对应 阅读全文
posted @ 2025-05-11 10:44 sakura430 阅读(9) 评论(0) 推荐(0)