力扣知识点总结
一、字符串处理类
代表题目:
- 罗马数字转整数
- 最长回文子串
- Z字形变换
- 无重复字符的最长子串
核心知识点:
1. 哈希表映射(罗马数字转整数):用哈希表存储罗马字符与数值的对应关系,遍历字符串时通过“当前字符值 < 下一个字符值则减,否则加”的逻辑计算结果。
2. 双指针法(最长回文子串):分“奇数长度回文”和“偶数长度回文”,用左右指针向两边扩展,找到最长回文区域。
3. 模拟遍历(Z字形变换):通过“模拟Z字的上下移动”,用数组存储每一行的字符,最后拼接结果。
4. 滑动窗口+哈希表(无重复最长子串):用哈希表记录字符最新位置,左指针动态收缩窗口,右指针遍历字符串,维护窗口内无重复字符。
二、整数操作类
代表题目:
- 整数反转
- 回文数
核心知识点:
1. 数学运算处理边界(整数反转):通过“取余获取最后一位、取整去掉最后一位”逐步构造反转数,同时要判断是否溢出(比如反转后超过 INT_MAX / INT_MIN )。
2. 回文判断技巧(回文数):可以反转整数后比较(注意负数直接返回false),或只反转一半数字(避免溢出),再与原数的前半部分比较。
三、数组与中位数类
代表题目:
- 寻找两个正序数组的中位数
核心知识点:
1. 二分查找(分治思想):要求时间复杂度O(log(m+n)),需通过二分法不断缩小“寻找中位数的范围”,比较两个数组的中间值,逐步排除不可能的区间,最终找到中位数。
四、链表操作类
代表题目:
- 两数相加
核心知识点:
1. 链表遍历与进位处理:遍历两个链表,逐位相加并记录进位,用新链表存储结果;注意链表长度不一致、最后一位有进位的情况。
五、哈希表应用类
代表题目:
- 两数之和
核心知识点:
1. 哈希表快速查找:用哈希表存储“数值→索引”的映射,遍历数组时,计算目标值与当前值的差值,若差值在哈希表中则直接返回索引,否则将当前值存入哈希表。
