33.搜索旋转排序数组
题目链接
33.搜索旋转排序数组
class Solution {public int search(int[] nums, int target) {int l = 0, r = nums.length - 1;while (l <= r) {int mid = (l + r) / 2;if (nums[mid] == target)return mid;if (nums[l] <= nums[mid]) {//左有序if (target >= nums[l] && target < nums[mid]) {r = mid - 1;} else {l = mid + 1;}} else {//右有序if (target <= nums[r] && target > nums[mid]) {l = mid + 1;} else {r = mid - 1;}}}return -1;}
}
小结:主要分左有序和右有序两类,之后判断目标值是否在有序区间内,进行递归。