思路源于?
【小白都能聽懂的算法課】【力扣】【Leetcode33】搜索旋轉排序數組 | 二分查找 | 數組
主要是數組旋轉后分為左右兩個升序區間 ,如果mid落在左區間并且目標大小也在left-mid中,那么right右縮
?
class Solution {public int search(int[] nums, int target) {int left=0,right=nums.length-1;while(left<=right){int mid=(right-left)/2+left;if(target==nums[mid])return mid;else {//mid落入左區間if(nums[left]<=nums[mid]){//target也在左區間if(nums[left]<=target&&target<nums[mid])right=mid-1;//target在右區間elseleft=mid+1;}else {//mid落入右區間//target也在右區間if(nums[mid]<target&&target<=nums[right])left=mid+1;//target在左區間elseright=mid-1;}}}return -1;}
}
?