题解 | #在旋转过的有序数组中寻找目标值#

在旋转过的有序数组中寻找目标值

http://www.nowcoder.com/practice/87c0e7abcbda41e7963660fa7d020995

    let length = nums.length;
    let j = 1; let key = nums[0];
    while(j < length && nums[j] > key){
        j++
    }
    if(target >= key && target <= nums[j-1]){
        return binarySearch(nums,target,0,j-1);
    }else{
        return binarySearch(nums,target,j,length-1);
    }

该题主要是利用数组的性质,降低复杂度。

  1. 找到数组转换的位置,会发现可以将其分为两个增序的部分
  2. 根据情况决定:是对前面部分进行二分还是后面部分。
全部评论

相关推荐

和光同尘cc:给我发就算了,还敢恶心上交✌🏻
点赞 评论 收藏
分享
3 收藏 评论
分享
牛客网
牛客企业服务