题解 | #在旋转过的有序数组中寻找目标值#
在旋转过的有序数组中寻找目标值
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); }
该题主要是利用数组的性质,降低复杂度。
- 找到数组转换的位置,会发现可以将其分为两个增序的部分
- 根据情况决定:是对前面部分进行二分还是后面部分。