本题要求在一个已升序排列的数组中,对于每一个给定的目标值 target
,找到数组中比 target
小的最大值 max_val
和比 target
大的最小值 min_val
。若不存在满足条件的值,则相应地输出 -1
。
题目描述:
给定一个升序排列的数组 arr
,长度为 n
,以及 Q
次询问。每次询问都会给出一个目标值 target
。对于每个目标值,请找出数组中比目标值小的最大值 max_val
和比目标值大的最小值 min_val
。
具体而言,要求对于每个询问:
arr
所有小于 target
的元素中找到最大值 max_val
。arr
所有大于 target
的元素中找到最小值 min_val
。如果不存在比 target
小的值,则 max_val
输出为 -1
;如果不存在比 target
大的值,则 min_val
输出为 -1
。
输入:
n
和 Q
,表示数组的长度和询问的次数。n
个升序排列的整数,表示数组 arr
。Q
行中,每行包含一个整数 target
。输出:
对于每个询问,输出一行,包含两个整数 max_val
和 min_val
,分别表示比 target
小的最大值和比 target
大的最小值。
数据范围:
样例输入:
5 3
1 3 5 7 9
4
6
10
样例输出:
3 5
5 7
9 -1