Skip to content

Latest commit

 

History

History
74 lines (55 loc) · 2.3 KB

0034-find-first-and-last-position-of-element-in-sorted-array.adoc

File metadata and controls

74 lines (55 loc) · 2.3 KB

34. 在排序数组中查找元素的第一个和最后一个位置

给你一个按照非递减顺序排列的整数数组 nums,和一个目标值 target。请你找出给定目标值在数组中的开始位置和结束位置。

如果数组中不存在目标值 target,返回 [-1, -1]

你必须设计并实现时间复杂度为 \$log_2n\$ 的算法解决此问题。

示例 1:

输入:nums = [5,7,7,8,8,10], target = 8
输出:[3,4]

示例 2:

输入:nums = [5,7,7,8,8,10], target = 6
输出:[-1,-1]

示例 3:

输入:nums = [], target = 0
输出:[-1,-1]

提示:

  • 0 <= nums.length <= 105

  • -109<= nums[i] <= 109

  • nums 是一个非递减数组

  • -109<= target <= 109

思路分析

可以直接使用二分查找,搜索两次。

一刷
link:{sourcedir}/_0034_FindFirstAndLastPositionOfElementInSortedArray.java[role=include]
二刷
link:{sourcedir}/_0034_FindFirstAndLastPositionOfElementInSortedArray_2.java[role=include]