Tagged
二分查找
LeetCode(五)—— 二分查找
二分查找是一种"看着简单、写起来翻车"的算法。思路一句话能讲完——每次把搜索区间砍掉一半——但真要在面试中一气呵成写对、还要分得清"找第一个"和"找任意一个",就会发现各种边界条件让人抓狂。本文不打算再罗列一遍模板,而是想说清楚一件事:为什么模板长这样。一旦理解了背后的不变量,< 还是 <=、right = mid …
二分查找是一种"看着简单、写起来翻车"的算法。思路一句话能讲完——每次把搜索区间砍掉一半——但真要在面试中一气呵成写对、还要分得清"找第一个"和"找任意一个",就会发现各种边界条件让人抓狂。本文不打算再罗列一遍模板,而是想说清楚一件事:为什么模板长这样。一旦理解了背后的不变量,< 还是 <=、right = mid …