——2019.10.8
我太蠢了,当时并不知道什么是logn级别,就暴力瞎写,啥也不懂,十分尴尬。
二分法,确定边界
public int search(int[] nums, int target) { //未知位置发生旋转,如何确定是哪个位置发生的? //二分法如何使用,如何判断边界? int first = 0,last = nums.length; while(first != last){ int mid = first +(last-first)/2; if(nums[mid] == target){ return mid; } if(nums[first]<nums[mid]){ if(nums[first] <= target && target<=nums[mid]){ last = mid; }else{ first = mid+1; } }else{ if(nums[mid] <= target && target <= nums[last-1]){ first = mid+1; }else{ last = mid; } } } return -1; }
——2020.7.8