classSolution{publicintfindMin(int[] nums){int low =0;int high = nums.length -1;int mid =0;while(low < high){
mid = low +(high - low)/2;if(nums[mid]> nums[high]){
low = mid +1;}elseif(nums[mid]< nums[high]){
high = mid;}else{
high -=1;}}return nums[low];}}
167. 两数之和 II - 输入有序数组
classSolution{publicint[]twoSum(int[] numbers,int target){int n = numbers.length;for(int i =0; i < n; i++){int lo = i +1, hi = n -1;while(lo <= hi){int mid = lo +(hi - lo)/2;if(numbers[mid]== target - numbers[i]){returnnewint[]{i +1, mid +1};}elseif(numbers[mid]< target - numbers[i]){
lo = mid +1;}else{
hi = mid -1;}}}returnnewint[]{-1,-1};}}
35. 搜索插入位置class Solution { public int searchInsert(int[] nums, int target) { int low = 0; int hight = nums.length - 1; int ans = nums.length; while (low <= hight) { int mid = low + (hight - low) / 2;