在本题中,我们需要在一个升序排列的数组中多次查询某个元素的首次出现和最后一次出现的位置。如果目标元素存在,我们需要返回它在数组中首次和最后一次出现的位置。如果不存在该元素,则返回 -1 -1。这种问题可以通过二分查找来高效解决。
Python 提供了 bisect 模块,它包含了类似 C++ 中 lower_bound 和 upper_bound 函数的功能。我们可以通过 bisect_left 和 bisect_right 来解决本题。
bisect_left 和 bisect_right题目描述:
给定一个升序排列的数组 A 和 Q 次询问。对于每次询问,您需要找到指定元素 x 在数组中第一次和最后一次出现的位置。如果该元素不存在于数组中,则返回 (−1,−1)。
输入格式:
开通会员即可查看完整视频题解: 1.题目讲解 2.思路分析 3.逐行代码手写
By signing up a CodeFun2000 universal account, you can submit code and join discussions in all online judging services provided by us.