问题描述:
Suppose a sorted array is rotated at some pivot unknown to you beforehand.
(i.e., 0 1 2 4 5 6 7 might become
4 5 6 7 0 1 2).
You are given a target value to search. If found in the array return its index, otherwise return -1.
You may assume no duplicate exists in the array.
实现代码:
public class Solution { public static int search(int[] nums, int target) { int index=0; for(int i=0;i<nums.length-1;i++){ if(nums[i] > nums[i+1]){ index = i+1; break; } } int left=0,right=nums.length-1; if(target > nums[right]){ right=index-1; }else if(target < nums[right]){ left=index; }else if(index!=0 && target==nums[right]){ return right; } index=(left+right)/2; while(left <= right){ System.out.println("000000"); if(target < nums[index]){ right=index-1; }else if(target > nums[index]){ left=index+1; }else{ return index; } index=(left+right)/2; } return -1; } }
原创文章,作者:ItWorker,如若转载,请注明出处:https://blog.ytso.com/7206.html