文章目录 题目描述思路分析代码实现 题目描述 思路分析 代码实现 package LeetCode; public class Search { public int search(int[] nums, int target) { if (nums == null || nums.length == 0) { return -1; } int start = 0; int end = nums.length - 1; int mid; while (start <= end) { mid = start + (end - start) / 2; if (nums[mid] == target) { return mid; } // 前半部分有序,注意此处用小于等于 if (nums[start] <= nums[mid]) { // target在前半部分 if (target >= nums[start] && target < nums[mid]) { end = mid - 1; } else { start = mid + 1; } } else { if (target <= nums[end] && target > nums[mid]) { start = mid + 1; } else { end = mid - 1; } } } return -1; } }