思路1 只对有序的那一半进行二分查找
C++最简洁的二分法分类讨论 每次二分,左半部分和右半部分至少有一边是有序的,以此为条件可以分成两种情况: 1、左半边是有序的 (1) target落在左半边 (2) otherwise 2、右半边是有序的 (1) target落在右半边 (2) otherwise 综上所述,一共两种可能性,这两种情况各自又有两种可能性
注意分的时候,nums[l] <= nums[m]
相等必须放在左边,不然只有两个元素的情况过不了。
另外 while (l <= r) 这里必须有等号,不然一个元素时l == r,连while都进不去
Previous0033_Search_in_Rotated_Sorted_ArrayNext0034_Find_First_and_Last_Position_of_Element_in_Sorted_Array
Last updated