• Search in Rotated Sorted Array 分类: Leetcode(线性表) 2015-01-29 10:23 58人阅读 评论(0) 收藏


    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.

    二分查找的推广,需要增加判断条件,为方便举例我们假设要找的数字为3,先用mid把数列分为两种情况,再讨论两种情况的子情况

    mid = first+ ( end - first)/2;

    if ( A[mid ] == target ) return mid;(找到终止)

    if ( A[first] <=  A[mid])   (这个时候还得考虑两种情况,1 2 3 4 5 6 7 8 9 和 5 6 7 8 9 1 2 3 4)

    {

    if( A[first] < target && target < =A[mid])

    { end=mid ; }

    else

    { first= mid+1; }

    }

    else   ./A[first] > A[mid]) (7 8 9 1 2 3 4 5 6  和  9 1 2 3 4 5 6 7 8)

    {

    if(A[mid] < target && target <=A[end-1])

    { first = mid+1 }

    else

    { end = mid; }

    }

    class Solution {
    public:
        int search(int A[], int n, int target) {
            int first=0;
            int end=n;
            while(first!=end)
            {
                int mid =first+ (end - first)/2;
                if(A[mid] == target) return mid;
                if(A[first] <= A[mid])
                {
                    if(A[first] <= target && target<A[mid] )
                    {
                        end = mid;
                    }
                    else
                    {
                        first = mid+1;
                    }
                }
                else
                {
                    if(A[mid] < target && target <= A[end-1] )
                    {
                        first = mid+1;
                    }
                    else
                    {
                        end = mid;
                    }
                    
                }
            }
            return -1;
        }
    };


    版权声明:本文为博主原创文章,未经博主允许不得转载。

  • 相关阅读:
    05-流程控制
    04-基础语法3
    03-基础语法2
    SQLyog-证书密钥
    博客园美化系列__看板娘
    修改博客园模板样式【完美解决方案】
    Linux-Deepin 下开启SSH远程登陆
    Mui---自己利用Vue编写的表格
    canvas--操作步骤--属性
    Mui-打开手机相册
  • 原文地址:https://www.cnblogs.com/learnordie/p/4656963.html
Copyright © 2020-2023  润新知