记录 leetcode 题目
如下题单主要参考:https://leetcode.cn/circle/discuss/RvFUtj/
一. 学习使用双指针
2414. 最长的字母序连续子字符串的长度 (2024-09-19 每日一题),不是标准的滑动窗口。和曾经的题目类似
二. 学习滑动窗口
个人理解,滑动窗口可以认为是 前后指针,需要不断调整,找出合适的窗口。这个题目需要注意边界条件,需要总结规律,方便控制。
2.1 不定长滑动窗口
2.1.0 滑动窗口的变通
2.1.1 求最长或最大
3. 无重复字符的最长子串
3090. 每个字符最多出现两次的最长子字符串
1493. 删掉一个元素以后全为 1 的最长子数组
2024-09-11 做了两道题目,算是不定长滑动窗口,需要巩固一下:209 长度最小的子数组。
2.1.2 求最短
209. 长度最小的子数组
2.1.3 求子数组的个数
713. 乘积小于 K 的子数组 (计算子数组的个数 有点技巧)
2.2 定长滑动数组
1343. 大小为 K 且平均值大于等于阈值的子数组数目
2090. 半径为 k 的子数组平均值
三. 二分查找
目前,我采用"双闭区间" 进行二分查找。对照如下35题,个人理解如下:
当 arr[mid] < target, left = mid+1, left 是向着 大于等于target 的方向移动; 当 arr[mid] >= target 时,right向着小于target 的方向移动。最终left 指向的位置就是 >= target 的左边界,right 指向的位置是 < target 的右边界。并且 left = right + 1, right = left -1;
35. 搜索插入位置 (简单难度)
34. 在排序数组中查找元素的第一个和最后一个位置
162. 寻找峰值
875. 爱吃香蕉的珂珂
四. 栈
五. 哈希表
七. 动态规划
198. 打家劫舍
1884. 鸡蛋掉落-两枚鸡蛋 每日一题,跳过
887. 鸡蛋掉落 每日一题,跳过
3193. 统计逆序对的数目 每日一题,跳过
3180. 执行操作可获得的最大总奖励 I 每日一题 跳过
3181. 执行操作可获得的最大总奖励 II 每日一题,跳过
》》个人总结:需要找到原问题和子问题,可以用第一个或最后一个元素进行举例,然后总结出 递归问题和处理函数
需要分析的题目:
https://www.nowcoder.com/practice/fd55637d3f24484e96dad9e992d3f62e
八. 数学问题
3191. 使二进制数组全部等于 1 的最少操作次数 I 每日一题,跳过
3235. 判断矩形的两个角落是否可达 每日一题 2024-11-08
九、图
684. 冗余连接 每日一题,跳过 2024-10-27
685. 冗余连接 II 每日一题,跳过 2024-10-28
十、排序
23. 合并 K 个升序链表
十一、位运算
https://leetcode.cn/circle/discuss/CaOJ45/
3226. 使两个整数相等的位更改次数
其他
128. 最长连续序列 (并查集)
每日一题
3235. 判断矩形的两个角落是否可达 2024-11-08 数学
@@@@
1. 记录一些算法文章:Dijkstra算法
https://zhuanlan.zhihu.com/p/338414118

浙公网安备 33010602011771号