Medium 81题 Search in Rotated Sorted Array II
2016-09-28 16:23
288 查看
Question:
Follow up for "Search in Rotated Sorted Array":
What if duplicates are allowed?
Would this affect the run-time complexity? How and why?
Write a function to determine if a given target is in the array.
Solution:
基于上一题作了一些调整
public class Solution {
public boolean search(int[] nums, int target) {
int n=nums.length;
int low=0;
int high=n-1;
while(low<=high)
{
int mid=(high-low)/2+low;
if(nums[mid]==target)
return true;
if(nums[low]<=nums[mid]) //left part is sorted
{
if((nums[low]==nums[mid])&&mid!=low)
{
low++;
continue;
}
if(target<nums[mid]&&target>=nums[low])
high=mid-1;
else
low=mid+1;
}
if(nums[mid]<=nums[high]) //right part is sorted
{
if((nums[high]==nums[mid])&&(mid!=high))
{
high--;
continue;
}
if(target<=nums[high]&&target>nums[mid])
low=mid+1;
else
high=mid-1;
}
}
return false;
}
}
Follow up for "Search in Rotated Sorted Array":
What if duplicates are allowed?
Would this affect the run-time complexity? How and why?
Write a function to determine if a given target is in the array.
Solution:
基于上一题作了一些调整
public class Solution {
public boolean search(int[] nums, int target) {
int n=nums.length;
int low=0;
int high=n-1;
while(low<=high)
{
int mid=(high-low)/2+low;
if(nums[mid]==target)
return true;
if(nums[low]<=nums[mid]) //left part is sorted
{
if((nums[low]==nums[mid])&&mid!=low)
{
low++;
continue;
}
if(target<nums[mid]&&target>=nums[low])
high=mid-1;
else
low=mid+1;
}
if(nums[mid]<=nums[high]) //right part is sorted
{
if((nums[high]==nums[mid])&&(mid!=high))
{
high--;
continue;
}
if(target<=nums[high]&&target>nums[mid])
low=mid+1;
else
high=mid-1;
}
}
return false;
}
}
相关文章推荐
- [Leetcode 81, Medium] Search in Rotated Sorted Array II
- Leetcode 81. Search in Rotated Sorted Array II (Medium) (cpp)
- 【Leet Code】81. Search in Rotated Sorted Array II---Medium
- Leetcode 81. Search in Rotated Sorted Array II (Medium) (java)
- FTPrep, 81 Search in Rotated Sorted Array II
- LeetCode 81. Search in Rotated Sorted Array II
- 81. Search in Rotated Sorted Array II
- LeetCode 81. Search in Rotated Sorted Array II(搜索旋转的数组)
- 81. Search in Rotated Sorted Array I II
- 81 Search in Rotated Sorted Array II
- 81. Search in Rotated Sorted Array II
- 81. Search in Rotated Sorted Array II
- 81. Search in Rotated Sorted Array II
- 81. Search in Rotated Sorted Array II
- [leetcode-81]Search in Rotated Sorted Array II(C)
- [LeetCode] 81. Search in Rotated Sorted Array II
- 81. Search in Rotated Sorted Array II**
- leetcode题解-33. Search in Rotated Sorted Array && 81. Search in Rotated Sorted Array II
- Leetcode 81. Search in Rotated Sorted Array II
- 81. Search in Rotated Sorted Array II