Search in Rotated Sorted Array详解程序员

问题描述:

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

(0)
上一篇 2021年7月17日
下一篇 2021年7月17日

相关推荐

发表回复

登录后才能评论