算法面试——二分查找:旋转排序数组、搜索二维矩阵
📅 2026/7/23 15:23:55
👁️ 阅读次数
📝 编程学习
二分查找的时间复杂度是 O(log n),但难点在于判断左右边界和边界条件。
一、基础二分
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;}💡 觉得有用的话,点赞 + 关注【张老师技术栈】吧!
编程学习
技术分享
实战经验