刷题
文章平均质量分 92
c++刷题
蝎子莱莱xo
这个作者很懒,什么都没留下…
展开
-
C++刷题 -- 栈和队列
力扣链接2.用队列实现栈用两个队列实现栈时间复杂度: pop为O(n),其他为O(1)空间复杂度: O(n)只用一个队列实现:时间复杂度: pop为O(n),其他为O(1)空间复杂度: O(n)3.有效的括号有效的括号括号匹配是使用栈解决的经典问题如果还记得编译原理的话,编译器在 词法分析的过程中处理括号、花括号等这个符号的逻辑,也是使用了栈这种数据结构。再举个例子,linux系统中,cd这个进入目录的命令我们应该再熟悉不过了。这个命令最后进入a目录,系统是如何知道进入了原创 2024-01-15 21:36:48 · 846 阅读 · 0 评论 -
C++刷题 -- 字符串
当然,我们在判断 s + s 拼接的字符串里是否出现一个s的的时候,第一个for循环用来标定子串的末尾,根据末尾取出子串。第二个while循环用来检查原字符串是否由子串构成。那么既然前面有相同的子串,后面有相同的子串,也就是由前后相同的子串组成。原创 2023-12-20 22:16:47 · 424 阅读 · 0 评论 -
C++刷题 -- KMP算法
前缀表要求的就是相同前后缀的长度;字符串a的最长相等前后缀为0。字符串aa的最长相等前后缀为1。字符串aaa的最长相等前后缀为2。等等…为什么一定要用前缀表刚刚匹配的过程在下标5的地方遇到不匹配,模式串是指向f,如图:然后就找到了下标2,指向b,继续匹配:如图。原创 2023-12-19 23:11:34 · 853 阅读 · 0 评论 -
C++刷题 -- 哈希表
一种方法是直接两个for循环暴力求解,时间复杂度为O(N^2);原创 2023-12-12 15:44:05 · 999 阅读 · 0 评论 -
C++刷题 -- 链表
【代码】C++刷题 -- 链表。原创 2023-12-07 23:06:52 · 1089 阅读 · 0 评论 -
C++刷题 -- 数组
二分查找、滑动串口、双指针法原创 2023-11-21 22:10:42 · 316 阅读 · 0 评论 -
C++刷题 -- map和set
先使用map来统计次数,再通过sort来排序,由于map的key是单词,所以map中的数据是按照单词的字典序排好的,从map遍历出来的数据也是按照字典序排好的,由于sort是不稳定的排序算法,所以在遇到出现次数相同的单词时,需要我们通过仿函数来控制比较;先将所有的单词都插入map中进行计数,然后再将map中的所有pair都放进优先级队列中,根据次数建大堆,出现次数相等的,根据单词进行字典序排序,这需要在仿函数中进行控制;题目要求返回出现频率最高的前k个单词,如遇到相同频率的单词,应按字典序排;原创 2023-03-29 21:38:07 · 87 阅读 · 0 评论 -
C++刷题 -- 二叉树oj
C++刷题 – 二叉树oj文章目录C++刷题 -- 二叉树oj1.根据二叉树创建字符串2.二叉树的层序遍历3.二叉树的层序遍历 II4.二叉树的最近公共祖先5.二叉搜索树与双向链表6.从前序与中序遍历序列构造二叉树7.二叉树的前序遍历(非递归)8.二叉树的中序遍历(非递归)9.二叉树的后序遍历(非递归)1.根据二叉树创建字符串https://leetcode.cn/problems/construct-string-from-binary-tree/前序遍历二叉树,打印出每个节点,每个根节点的左右原创 2023-03-25 16:54:42 · 142 阅读 · 0 评论