LeetCode 34. 在排序数组中查找元素的第一个和最后一个位置
2021-03-03 22:28
标签:tco 最大 存在 次数 解决 下标 elf 整数 数组 Difficulty: 中等 给定一个按照升序排列的整数数组 如果数组中不存在目标值 进阶: 示例 1: 示例 2: 示例 3: 提示: 解法一:很容易想到的思路,比较简单,遍历一次数组找到所有等于target的元素的下标索引然后找到对应最大最小的索引。需要注意的是数组所有的元素都相等的特殊情况。 LeetCode 34. 在排序数组中查找元素的第一个和最后一个位置 标签:tco 最大 存在 次数 解决 下标 elf 整数 数组 原文地址:https://www.cnblogs.com/swordspoet/p/14381248.html34. 在排序数组中查找元素的第一个和最后一个位置
nums
,和一个目标值 target
。找出给定目标值在数组中的开始位置和结束位置。target
,返回 [-1, -1]
。
O(log n)
的算法解决此问题吗?输入:nums = [5,7,7,8,8,10], target = 8
输出:[3,4]
输入:nums = [5,7,7,8,8,10], target = 6
输出:[-1,-1]
输入:nums = [], target = 0
输出:[-1,-1]
0 5
-109 9
nums
是一个非递减数组-109 9
Solution
class Solution:
def searchRange(self, nums: List[int], target: int) -> List[int]:
if not nums:
return [-1,-1]
res = []
for i, v in enumerate(nums):
if v == target:
res.append(i)
if not res:
return [-1,-1]
elif len(res) == 1:
return [res[0],res[0]]
else:
return [min(res), max(res)]
文章标题:LeetCode 34. 在排序数组中查找元素的第一个和最后一个位置
文章链接:http://soscw.com/index.php/essay/59713.html