经典算法题思路整理

本文重点整理了经典算法题的解题思路,强调在面试中清晰表达思路的重要性。涵盖数组、数学、字符串、链表、二叉树、回溯搜索、动态规划、堆栈快排等多个领域,建议通过多次刷题和复习来巩固记忆。
摘要由CSDN通过智能技术生成
Principle
  • 自己能在面试中A4纸写出来的代码才是好代码,不要一味追求复杂度低的代码,如果写都写不出来更不用谈复杂度。
  • 第一遍先大概粗过一遍题目思路,第二遍再刷代码。
  • 标注出不熟悉的题目,隔天复习,加强记忆。

数组
数学
字符串
链表
二叉树
回溯、搜索
动态规划
堆栈快排等
其他

数组
Description Solution
287. 寻找重复数 hashmap、排序、二分变形
283. 移动零 双指针、冒泡
剑指 Offer 50. 第一个只出现一次的字符 哈希
1. 两数之和 哈希
167. 两数之和 II - 输入有序数组、剑指 Offer 57. 和为s的两个数字 哈希或双指针
!!!581. 最短无序连续子数组 双指针
88. 合并两个有序数组 双指针
977. 有序数组的平方
!!! 75. 颜色分类 荷兰旗问题
!!!334. 递增的三元子序列 三指针
---------------------------------------------
剑指 Offer 57 - II. 和为s的连续正数序列 滑动窗口
集合交集 哈希、排序
剑指 Offer 66. 构建乘积数组、LeetCode 238. 除自身以外数组的乘积 乘积=当前数左边的乘积*当前数右边的乘积
Leetcode 35. 搜索插入位置 二分
4. 寻找两个正序数组的中位数 二分
34. 在排序数组中查找元素的第一个和最后一个位置 二分
153. 寻找旋转排序数组中的最小值 旋转数组查找
剑指 Offer 11. 旋转数组的最小数字、154. 寻找旋转排序数组中的最小值 II
33. 搜索旋转排序数组
剑指 Offer 53 - I. 在排序数组中查找数字 I 两次二分
剑指 Offer 53 - II. 0~n-1中缺失的数字 二分
1300. 转变数组后最接近目标值的数组和 枚举+二分
剑指 Offer 59 - I. 滑动窗口的最大值、239. 滑动窗口最大值 二分
162. 寻找峰值 二分变形
410. 分割数组的最大值 二分变形
剑指 Offer 04. 二维数组中的查找、240. 搜索二维矩阵 II 二分变形
数组超过一半的数字/求众数 hashmap、排序
旋转数组 三次旋转
统计邻居状态 neighbor函数、CNN卷积
救生艇 贪心+双指针
----------------------------------- 先排序后操作
56. 合并区间 排序后贪心
57. 插入区间 合并区间
406. 根据身高重建队列 先排序后插入
452. 用最少数量的箭引爆气球 先排序后贪心
Python自定义排序 模板
1030. 距离顺序排列矩阵单元格 自定义排序
164. 最大间距 桶排序
-----------------------------------
跳跃游戏 贪心
1024. 视频拼接 区间合并贪心
盛最多水的容器 贪心、双指针
统计「优美子数组」 组合个数
剑指 Offer 48. 最长不含重复字符的子字符串、3. 无重复字符的最长子串 滑动窗口或者以s[i]结尾的dp
209. 长度最小的子数组
和为K的子数组连续的子数组和和可被 K 整除的子数组 前缀和
----------------------------------------- 单调栈
739. 每日温度496. 下一个更大元素 I
84. 柱状图中最大的矩形
239. 滑动窗口最大值
84. 柱状图中最大的矩形
85. 最大矩形
42. 接雨水
-------------------------------------------
求1+2+…+n 递归求和
128. 最长连续序列 集合
单词接龙 构造BFS
最佳观光组合 迭代
15. 三数之和16. 最接近的三数之和 回溯或者双指针
------------------------------------ 原地哈希
41. 缺失的第一个正数
剑指 Offer 03. 数组中重复的数字
442. 数组中重复的数据
448. 找到所有数组中消失的数字
  • 3
    点赞
  • 26
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值