leetcode练习
leetcode练习
第一阶段,数组和字符串
1️⃣ 两数之和(LeetCode 1)
关键技术:哈希表
思路总结:
- 用哈希表记录已遍历的数字,一边遍历数组一边查找目标数的补数。
2️⃣ 最大子数组和(LeetCode 53)
关键技术:动态规划(Kadane 算法)
思路总结:
- 当前最大子数组和 = max(当前元素, 当前元素 + 前最大和)
- 遍历一次数组即可求出最大和
3️⃣ 买卖股票的最佳时机(LeetCode 121)
关键技术:贪心算法
思路总结:
- 记录历史最低价格,每天计算当前价格减去最低价的收益
- 遍历一次即可得到最大利润
4️⃣ 合并两个有序数组(LeetCode 88)
关键技术:双指针、原地合并
思路总结:
- 从后往前用双指针合并两个有序数组到第一个数组中
- 原地操作,不额外占用空间
5️⃣ 删除有序数组中的重复项(LeetCode 26)
关键技术:快慢指针
思路总结:
- 快指针遍历数组,慢指针存放不重复元素
- 原地修改数组
6️⃣ 移除元素(LeetCode 27)
关键技术:快慢指针
思路总结:
- 快指针跳过目标值,慢指针收集其余元素
- 原地修改数组
7️⃣ 验证回文串(LeetCode 125)
关键技术:双指针 + 字符过滤
思路总结:
- 双指针从两头扫描,只比较字母和数字,忽略大小写
- 跳过非字母数字字符
8️⃣ 最长连续序列(128)
Hashset
continue;跳过当前迭代,进入下一次循环
break;终止整个循环,跳出循环
9️⃣
