1. Two Sum | LeetCode

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

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

所以一个办法就是:

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

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

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。