暴力解法 (双层循环)
关注点:
- 从所有可能的「两根垂线」里挑一对
- 每次都要算一次面积 → 比较更新最大值
思维方式:
- 「枚举所有可能性」
- 侧重点在 找线,不管哪些有潜力,直接全试
特点:
- 时间复杂度高 O(n²)
- 思路直接,贴合题意(“找两根线”)
- 逻辑比较机械,变量和循环都比较多
双指针解法
关注点:
- 面积公式 = 宽度 × 高度
- 宽度是可控的(每次缩小一格),高度取决于两边的较小值
- 思路变成:宽度减小时,如何尽可能提高高度?
思维方式:
- 「权衡宽度与高度」
- 通过移动指针(丢掉限制高度的小的一边),尝试寻找更优解
特点:
- 时间复杂度低 O(n)
- 更抽象,抓住面积的本质(宽 × 高)
- 逻辑更简洁,变量更少,效率更高
总结
你说的那句非常准确:
- 暴力解法 是从「外部形式」(线)出发。
- 双指针解法 是从「内部本质」(面积构成因素)出发。