leetcode--Search in Rotated Sorted Array II

来源:互联网 发布:一个网络协议主要由 编辑:程序博客网 时间:2024/05/22 10:24

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.


题意:和leetcode--Search in Rotated Sorted Array一样,但是数组中可能出现重复元素

分类:数组,二分法


解法1:如果遇到无法判断在哪边的元素,说明是重复元素,这时只能遍历查找了

public class Solution {    public boolean search(int[] nums, int target) {        int low = 0;    int high = nums.length-1;        while(low<=high){    int mid = (low+high)/2;        if(nums[mid]==target) return true;    if(nums[mid]>nums[low]){//如果mid属于左边    if(nums[mid]>target && nums[low]<=target){//如果target属于左边    high = mid-1;    }else{    low = mid+1;    }    }else if(nums[mid]<nums[low]){//如果mid属于右边    if(target>nums[mid] && target<=nums[high]){    low = mid+1;      }else{    high = mid-1;    }    }else{    for(int i=low;i<=mid;i++){    if(nums[i]==target) return true;    }    low = mid+1;    }    }    return false;    }}

0 0
原创粉丝点击