Chinaunix首页 | 论坛 | 博客
  • 博客访问: 266747
  • 博文数量: 170
  • 博客积分: 0
  • 博客等级: 民兵
  • 技术积分: 1709
  • 用 户 组: 普通用户
  • 注册时间: 2014-05-06 18:01
文章分类

全部博文(170)

文章存档

2016年(11)

2015年(130)

2014年(29)

分类: Java

2015-05-25 18:55:28


//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 SearchinRotatedSortedArray {


public static void main(String[] args) {
// TODO 自动生成的方法存根


}
public int search(int[] nums, int target) {
if(nums.length==0)
return -1;
if(nums[0]==target)
return 0;
int  left=0;
int right=nums.length-1;
if(nums[right]==target)
return right;
int mid;
while(left+1 mid=(left+right)/2;
if(nums[mid]==target)
return mid;
if(nums[left]<=nums[mid]){
if(target>=nums[left]&&target right=mid;
else {
left=mid;
}
}
else{
if(target>nums[mid]&&target<=nums[right])
left=mid;
else {
right=mid;
}
}

}

return -1;
}


}

阅读(708) | 评论(0) | 转发(0) |
0

上一篇:longestValidParentheses

下一篇:SearchforaRange

给主人留下些什么吧!~~