![](https://img-blog.csdnimg.cn/8a8b7c959fbb46b19c8b372d257e5440.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
数据结构学习
数据结构洛谷习题
Jazzin0
这个作者很懒,什么都没留下…
展开
-
洛谷P2234 营业额统计(C++)
看到这题开始往栈和队列的方向想想了很久没有思路,通过查看后面的题解学习了set集合以及对应迭代器的使用方法,set结构中lower_bound(p)方法,即找到大于等于数p的最小数这一方法完美契合题目,该数前一位则是小于等于数p的最大数,因为set集合会自动从小到大排序。原创 2023-10-04 16:03:21 · 158 阅读 · 1 评论 -
洛谷P2058 海港(C++)
这题我一开始理解错了题意,以为是统计每个小时内的,题目其实要求的是该船过去一小时内的,于是使用队列,将每一个人的国籍与时间封装成结构体压入队列。在每条船开始前检索队列,只留下一小时内的人。原创 2023-10-02 22:37:54 · 307 阅读 · 1 评论 -
洛谷P1449 后缀表达式(C++)
首先是要理解题意,可以得到思路是逐个字符检测,当检测到运算符时对此运算符前两个数字进行运算,并将得到的结果代替这两个数字,由此发现可以使用栈这一数据结构,使用数组进行模拟,注意当字符超过两位时转10进制需要依次乘10.原创 2023-09-23 16:09:12 · 147 阅读 · 1 评论 -
洛谷P1996 约瑟夫问题 (C++)
简单阅读题目之后第一想法就是在数据结构中学习过的链表,而且是循环链表,即将最后一个节点的next指向第一个节点,链表的插入部分占用了大部分时间,原因是每次新分配空间的next忘记指向null,导致空指针问题。原创 2023-09-24 16:55:16 · 89 阅读 · 1 评论 -
洛谷P3613 寄包柜 (C++)
看到题目我的第一想法是使用二维数组,开一个a[100001][100001],写完直接运行不了,通过学习洛谷题解发现使用STL中的map容器可以避免空间复杂度过大的问题,特别是理解了二维map的值,例如map<int,map<int,int> >a,a[i][j]的值就是第三个int,个人理解a[i][j]就相当于第二层map的key。原创 2023-09-22 20:46:16 · 173 阅读 · 0 评论 -
洛谷P1241 括号序列
看到题目第一眼,这种边输入边判断的情况,第一反应是使用栈,是左括号就入栈,是右括号就开始判断,并将能匹配的两个括号的状态改为1,我开始理解题意理解错误,以为是要一直找到匹配成功的左括号为止,其实是只判断最近的第一个左括号,匹配成功与失败都退出循环。原创 2023-09-28 19:30:40 · 28 阅读 · 0 评论 -
洛谷P1540 机器翻译(C++)
看到题目中有一个很明显的清空最早进入内存的单词,可以反应到使用先进先出的数据结构队列,同时开一个bool类型的数组判断该单词是否在内存中即可。原创 2023-09-25 15:12:13 · 286 阅读 · 1 评论 -
洛谷P4387 验证栈序列(C++)
第一次看题理解错了题意,以为就是简单的判断两个数列反向是否相同,后来看到是出栈的可能顺序,应该用数组模拟,当栈顶与数组第一个相同时即出栈,最后如果栈为空则该序列是可能的。原创 2023-10-03 21:11:05 · 104 阅读 · 0 评论 -
洛谷P1160 队列安排
今天写题时我出现了很严重的错误,总是想着使用链式存储解决问题,但是涉及到指针的内容就特别容易出错,导致花费了大量时间也没写出来,通过阅读别人的题解发现用数组来模拟双向链表是一种简单又方便的方法。原创 2023-09-29 20:46:53 · 34 阅读 · 1 评论