解决旋转数组二分查找的万能程序

来源:互联网 发布:万方数据库客户端 编辑:程序博客网 时间:2024/05/21 21:36


class Solution {public:    bool search(int A[], int n, int target) {        int low = 0, high = n - 1;        while(low <= high){            int mid = low + ((high - low) >> 1);            if(A[mid] == target){                return true;            }            if(A[low] == A[mid] && A[mid] == A[high]){                low++;                high--;                continue;            }            if(A[low] <= A[mid]){//mid的左边有序                if(A[low] <= target && target < A[mid]){//目标数确定在mid的左半边                        high = mid - 1;                }else{                        low = mid + 1;                }            }else{//mid的右边有序                if(A[mid] < target && target <= A[high]){//目标数确定在mid的右半边                        low = mid + 1;                }else{                        high = mid - 1;                }            }        }        return false;    }};





0 0
原创粉丝点击