34
这道题的思路:用两次二分法去查找数值。这里的二分法涉及重复元素的问题,一次二分肯定能找到一个元素,设置当中间节点的值大于或者等于目标值时就移动右端点,就能得到重复元素的第一个元素的位置。另一个元素可以用target+1作为目标值寻找,寻找到了直接将它的位置减1就是重复元素的位置。
33
这道题很巧妙,经过旋转后,以中间节点为界,左右有一边一定是按序排列的,那么这就可以用二分法,在分完之后下一个中间节点的两边也会呈现这个规律,所以按照1、左右两边哪边是有序的?2、target值是不是在这范围内?来更行左右区间。
153
这道题有一个规律:假设数组的最后一个节点是x,那么在最小值的左边那些数一定都大于x,在最小值的右边那些数一定都小于x。由此规律,取中间节点,若中间节点小于最右侧节点,那么最小值就在中间节点的左侧,那就更新右节点;如果中间节点不小于最右侧节点,那么最小值就在中间节点的右侧,那么就更新左节点。下图是从力扣的题解中复制的,看图更好理解。