搜索旋转排序数组 II

来源:互联网 发布:网络广告费用预算 编辑:程序博客网 时间:2024/06/08 10:57

跟进“搜索旋转排序数组”,假如有重复元素又将如何?

是否会影响运行时间复杂度?

如何影响?

为何会影响?

写出一个函数判断给定的目标值是否出现在数组中。

样例

给出[3,4,4,5,7,0,1,2]和target=4,返回 true


***************************************************

在搜索旋转数组的基础上 判断 left 和 mid 的值相等的情况 

public class Solution {    /**      * param A : an integer ratated sorted array and duplicates are allowed     * param target :  an integer to be search     * return : a boolean      */    public boolean search(int[] A, int target) {        // write your code here        int left = 0;int right = A.length - 1;while (left <= right) {int mid = (left + right)/2;if(A[mid] == target)return true;if(A[mid] > A[left]){if(A[mid] > target && target > A[left])right = mid;else {left = mid+1;}}else if(A[left] > A[mid]){if(A[mid] < target && target <= A[right])left = mid + 1;elseright = mid;}else {left++;}}return false;    }}


0 0