当前为游客只读模式。登录后可提交代码判题并保存草稿与进度。

练题计划 · 力扣 HOT 100

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

中等searchRange()
时间限制 2000 ms内存限制 128 MB复杂度要求 时间 O(log n),空间 O(1)

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

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

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

你必须设计并实现时间复杂度为 O(log n) 的算法解决此问题。

约定

  • 数组已按非递减顺序排序。
  • 返回的是下标,从 0 开始。

输入

  • nums:非递减整数数组,0 ≤ nums.length ≤ 10^5
  • target:目标整数

输出

长度为 2 的数组 [start, end];未找到返回 [-1, -1]。

示例一

输入:

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]

复杂度要求

  • 时间复杂度:O(log n)
  • 空间复杂度:O(1)
Loading...

输入

[[5,7,7,8,8,10],8]

预期输出

[3,4]
自定义用例