1. Two Sum | LeetCode

Two Sum 对排序后的array来说,为什么一开始很难想到通过beginning point和end point两端,来开始做搜索?一个直观的想法肯定是任意找寻两个点(左右)arr[i], arr[j],看它们的sum是否等于target。

可是,麻烦的问题是,如果它们的和小于target,下一步该怎么操作呢?似乎都可以通过让这两个点向右移动来做调整,但到底调整哪一个点呢?这就是麻烦所在。

所以一个办法就是:

  • 如果你让某个点就在最右端呢?这不就只能通过移动左边的点来放大结果吗?
  • 而如果你让另一个点就在最左段,不就只能通过移动右边的点来缩小结果吗?

把他们结合起来,最合适的搜索,就是从最左边的beginning point和最右端的end point开始搜索。

你可能感兴趣的:(1. Two Sum | LeetCode)