这题看标题一直觉得是水题就没点进来。我的思路: 首先规定要O(logn)的话,基本上必须只能用binary search 来找。但是当你找到一个以后,首先并不知道这个是不是starting of target. 即便知道,还是需要往后遍历来知道什么时候ending。这样worst case可以O(n)。。
整体跟Rotated Sorted Array很像
首先画图: 有duplicate的sorted array
主要处理两种情况, 当target == mid时候,要么把Right 指针往左移动到mid点。或者把Left指针往right移动到mid点。
一共用2次binary search, 一次找起点,一次找终点。
牛逼啊!!!!1
我不想看九章的模板binary search
但是又不知道怎么找first time target appears, 和last time.
这个小哥的答案太屌了。