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️⃣