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

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

题目内容

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

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

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

输入描述

  • 第一行输入整数 nn,表示数组的长度。
  • 第二行输入 nn 个整数,表示数组 nums
  • 第三行输入一个整数 target,表示要查找的目标值。

输出描述

  • 输出一行,包含两个整数,表示 target 在数组中的起始位置和结束位置。如果 target 不在数组中,则输出 -1 -1

样例

样例 1

输入

6
5 7 7 8 8 10
8

输出

3 4

样例 2

输入

6
5 7 7 8 8 10
6

输出

-1 -1

提示

  • 0n1050 \leq n \leq 10^5
  • 109nums[i]109-10^9 \leq nums[i] \leq 10^9
  • nums 是一个非递减数组
  • 109target109-10^9 \leq target \leq 10^9