Search in Rotated Sorted Array II

Q: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.

A:有重复的元素。

bool bisearch(int A[],int begin,int end,int target)
{
    if(begin>end)
        return false;
    int middle = begin+(end-begin)/2;
    if(A[middle] == target)
        return true;
    if(A[begin]>=A[end])  //--这里不一样
    {
        return bisearch(A,begin,middle-1,target)||bisearch(A,middle+1,end,target);
    }else
    {
        if(A[middle]>target)
            return bisearch(A,begin,middle-1,target);  
        else
            return bisearch(A,middle+1,end,target);
    }
}

    bool search(int A[], int n, int target) {
        // Start typing your C/C++ solution below
        // DO NOT write int main() function
        return bisearch(A,0,n-1,target);
    }

  

原文链接: https://www.cnblogs.com/summer-zhou/p/3141739.html

欢迎关注

微信关注下方公众号,第一时间获取干货硬货;公众号内回复【pdf】免费获取数百本计算机经典书籍

    Search in Rotated Sorted Array II

原创文章受到原创版权保护。转载请注明出处:https://www.ccppcoding.com/archives/92553

非原创文章文中已经注明原地址,如有侵权,联系删除

关注公众号【高性能架构探索】,第一时间获取最新文章

转载文章受原作者版权保护。转载请注明原作者出处!

(0)
上一篇 2023年2月10日 上午1:43
下一篇 2023年2月10日 上午1:44

相关推荐