《代码随想录(Carl)》 数据结构与算法 题目解法关键知识点记录(一)

该文详细介绍了《代码随想录》中关于LeetCode的数据结构与算法题目的系统讲解,包括数组、链表、哈希表、字符串、栈与队列等基础和进阶主题,提供了一条清晰的学习路径,帮助提升编程技能和刷题效率。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

《代码随想录(Carl)》 数据结构与算法

一数据结构类题目

1.1 Vector(Array)

1.数组过于简单,但你该了解这些!
2.数组:每次遇到二分法,都是一看就会,一写就废
数组1_0704.二分查找20210627
3.数组:就移除个元素很难么?
数组2_0027.移除元素20210627
4.数组:有序数组的平方,还有序么?
数组3_0977.有序数组的平方20210627
5.数组:滑动窗口拯救了你
数组4_0209.长度最小的子数组20210627
6.数组:这个循环可以转懵很多人!
数组5_0059.螺旋矩阵II20210627
7.数组:总结篇

1.2 LinkedList

1.关于链表,你该了解这些!
2.链表:听说用虚拟头节点会方便很多?
3.链表:一道题目考察了常见的五个操作!
4.链表:听说过两天反转链表又写不出来了?
5.链表:两两交换链表中的节点
6.链表:删除链表的倒数第 N 个结点
7.链表:链表相交
8.链表:环找到了,那入口呢?
9.链表:总结篇!

1.3 Hash Table

1.关于哈希表,你该了解这些!
2.哈希表:可以拿数组当哈希表来用,但哈希值不要太大
哈希表1_0242.有效的字母异位词【数组哈希表】
3.哈希表:哈希值太大了,还是得用set
哈希表2_0349.两个数组的交集【set哈希表-没有限制哈希值的范围】
4.哈希表:用set来判断快乐数
哈希表3_0202.快乐数【set哈希表】
5.哈希表:map等候多时了
哈希表4_0001.两数之和【map哈希表-多存储了value-先查询后放入】
6.哈希表:其实需要哈希的地方都能找到map的身影
哈希表5_0454.四数相加II【map哈希表-两数和组的两数之和】
7.哈希表:这道题目我做过?
哈希表6_0383.赎金信【数组哈希表,26个小写字母】
8.哈希表:解决了两数之和,那么能解决三数之和么?
哈希表7_0015.三数之和【首尾双指针[降O(n)]+去重】
9.双指针法:一样的道理,能解决四数之和
哈希表8_0018.四数之和【首尾双指针+溢出】
10.哈希表:总结篇!(每逢总结必经典)

1.4 String

1.字符串:这道题目,使用库函数一行代码搞定
字符串1_0344.反转字符串【首尾双指针TO(n)+SO(1)+库函数使用原则swap(char& a, char& b)+位异或运算实现Swap函数】
2.字符串:简单的反转还不够!
字符串2_0541.反转字符串II【for循环状态增量为固定间隔SO(1)】
3.字符串:替换空格
字符串3_剑指Offer05.替换空格【尾尾双指针+内存覆盖TO(n)+SO(1)=>数组填充类题目】
4.字符串:花式反转还不够!
字符串4_0151.翻转字符串里的单词【先后双指针:删除多余空格TO(n)+SO(1)+翻转单词】
5.字符串:反转个字符串还有这个用处?
字符串5_剑指Offer58-II.左旋转字符串【首尾双指针:翻转字符串】
6.帮你把KMP算法学个通透
字符串6_0028.实现strStr【KMP:next数组+回退+GetNext代码实现+模式串匹配TO(m+n)+SO(m)】
7.字符串:KMP算法还能干这个!
字符串7_0459.重复的子字符串【KMP:next数组+(len%(len-next[len - 1])==0)】
8.字符串:总结篇!

1.5 Stack & Queue

1.栈与队列:来看看栈和队列不为人知的一面
2.栈与队列:我用栈来实现队列怎么样?
栈与队列1_0232.用栈实现队列【代码开发习惯-功能复用:peek()函数的实现复用pop()和push()】
3.栈与队列:用队列实现栈还有点别扭
栈与队列2_0225.用队列实现栈【两个队列实现栈:其中que2是备份;自己思路+一个队列实现栈,将que2放在que1的尾部。top()的代码与pop()不同,所以不涉及功能复用。】
【自己思路,两个单向队列没有固定关系,只有保持一个单向队列为空的规则,push输入数据到空队列,如果另一个队列有数据就全部导入到刚才的队列,相比Carl少了一次移动数据。pop直接从非空队列pop数据】
4.栈与队列:系统中处处都是栈的应用
栈与队列3_0020.有效的括号20221221【从理论分析转为代码应用情况分类编码+把左括号转换成匹配元素相同的右括号存入栈便于进行匹配】
5.栈与队列:匹配问题都是栈的强项
栈与队列4_1047.删除字符串中的所有相邻重复项20221222【用栈来存放顺序遍历过的字符,判断当前遍历字符与栈顶元素相同为匹配成功删除栈顶元素+字符串类string替代stack功能】
6.栈与队列:有没有想过计算机是如何处理表达式的?
栈与队列5_0150.逆波兰表达式求值20221222【string与整数的互相转换#include std::stol + std::to_string】
7.栈与队列:滑动窗口里求最大值引出一个重要数据结构
栈与队列6_0239.滑动窗口最大值20221223【用deque实现单调队列,存放索引和队列出口为最大值】
8.栈与队列:求前 K 个高频元素和队列有啥关系?
栈与队列7_0347.前K个高频元素20221225【priority_queue定义+比较函数类mycomparison小顶堆+倒序输出】
9.栈与队列:总结篇!
10.栈与队列:二叉树深度优先遍历基于栈的循环实现和广度优先遍历的基于队列的循环实现。

感谢Carl对于LeetCode中的数据结构与算法题目的系统讲解工作,可查看网页 linkhttps://programmercarl.com
linkhttps://github.com/youngyangyang04/leetcode-master 中的讲解文档。
按照类型从基础到提高循序渐进的过程选择经典题目高频面试题来讲解,大大提高了学习数据结构与算法知识和刷题效率,解决了浪费的时间主要三个问题点:1找题;2找到了不应该现阶段做的题;3没有全套的优质题解可以参考。
按照如下类型来练习:数组-> 链表-> 哈希表->字符串->栈与队列->树->回溯->贪心->动态规划->图论->高级数据结构,从简单刷起,做了几个类型题目之后,再慢慢做中等题目、困难题目。
经过系统的知识学习和技能练习现对整个知识体系的掌握有了一个质的飞跃。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值