数组是一种基础数据结构,可以用来处理常见的排序和二分搜索问题,典型的处理技巧包括对撞指针、滑动窗口等。 面试中的算法问题,有很多并不需要复杂的数据结构支撑,就是用数组,就能考察出很多东西。
题型1:原地算法
在不引入额外空间的情况下,修改数组
26. 删除有序数组中的重复项 - 力扣(LeetCode)
80. 删除有序数组中的重复项 II - 力扣(LeetCode)
题型2:双指针------对撞指针
167. 两数之和 II - 输入有序数组 - 力扣(LeetCode)
题型3:双指针------快慢指针
LCR 119. 最长连续序列 - 力扣(LeetCode)
题型4:排序
215. 数组中的第K个最大元素 - 力扣(LeetCode)
题型5:二分查找
34. 在排序数组中查找元素的第一个和最后一个位置 - 力扣(LeetCode)
153. 寻找旋转排序数组中的最小值 - 力扣(LeetCode)
字符串篇
题型1:字符串反转类:
557. 反转字符串中的单词 III - 力扣(LeetCode)
题型2:回文串类:
题型3:字符操作类:
387. 字符串中的第一个唯一字符 - 力扣(LeetCode)
题型4:子串匹配类:
28. 找出字符串中第一个匹配项的下标 - 力扣(LeetCode)
题型5:括号匹配类: