深入剖析二分查找的延伸:在排序数组中查找元素的第一个和最后一个位置
引言
二分查找,作为算法界的“常青树”,以其高效性和简洁性备受青睐。然而,许多初学者仅限于使用它查找单个元素,而对其进阶应用知之甚少。今天,我们就来剖析一个经典的二分查找变种——在排序数组中查找元素的第一个和最后一个位置。
这不仅是 LeetCode 上的经典问题(34. 在排序数组中查找元素的第一个和最后一个位置),也是面试高频考点。话不多说,直接上问题。
问题描述
给定一个按照升序排列的整数数组 nums
和一个目标值 target
,请你找到 target
在数组中的起始位置和结束位置。
如果数组中不存在 target
,返回 [-1, -1]
。
示例:
输入: nums = [5,7,7,8,8,10], target = 8
输出: [