一、基础二分
publicintbinarySearch(int[]nums,inttarget){intleft=0,right=nums.length-1;while(left<=right){intmid=left+(right-left)/2;if(nums[mid]==target)returnmid;if(nums[mid]<target)left=mid+1;elseright=mid-1;}return-1;}二、搜索旋转排序数组
publicintsearch(int[]nums,inttarget){intleft=0,right=nums.length-1;while(left<=right){intmid=left+(right-left)/2;if(nums[mid]==target)returnmid;if(nums[left]<=nums[mid]){if(target>=nums[left]&&target<nums[mid])right=mid-1;elseleft=mid+1;}else{if(target>nums[mid]&&target<=nums[right])left=mid+1;elseright=mid-1;}}return-1;}三、搜索二维矩阵
publicbooleansearchMatrix(int[][]matrix,inttarget){introw=matrix.length,col=matrix[0].length;intleft=0,right=row*col-1;while(left<=right){intmid=left+(right-left)/2;intvalue=matrix[mid/col][mid%col];if(value==target)returntrue;if(value<target)left=mid+1;elseright=mid-1;}returnfalse;}💡 觉得有用的话,点赞 + 关注【张老师技术栈】吧!