我在竞赛编程中的旅程

我在竞赛编程中的旅程

💡 原文英文,约300词,阅读约需1分钟。
📝

内容提要

本文介绍了两种算法问题的解决方法:1. 对于3Sum Closest,先对数组排序,固定一个数字,使用双指针法寻找其他两个数字,以更新最接近目标的和;2. 对于Container With Most Water,利用双指针法计算两条线之间的面积,并调整指针以找到最大面积。

🎯

关键要点

  • 3Sum Closest算法:先对数组排序,固定一个数字,使用双指针法寻找其他两个数字。
  • 使用双指针法时,左指针从数组开始位置,右指针从数组结束位置开始。
  • 计算三个数字的和,如果更接近目标,则更新最接近的和。
  • 根据和与目标的比较调整指针:和小于目标时,左指针右移;和大于目标时,右指针左移。
  • Container With Most Water算法:使用双指针法,左指针在数组开始,右指针在数组结束。
  • 计算两条线之间的面积,面积公式为:min(height[left], height[right]) * (right - left)。
  • 根据两条线的高度比较调整指针:左线高度小于右线时,左指针右移;右线高度小于左线时,右指针左移。
  • 在调整指针的过程中,记录形成的最大面积。
➡️

继续阅读