题目描述
给定一个非降序的整数数组,数组中包含重复数字(重复数字很多) ,给定任意整数,对数组进行二分查找,返回数组正确的位置,给出函数实现。 a. 连续相同的数字,返回最后一个匹配的位置 b. 如果数字不存在返回 -1。(测试用例仅做参考,我们会根据代码质量进行评分)
输入描述:
第一行给定数组长度n,目标值tar。(1<=n,tar<=10000) 第二行给出n个整数a.(1<=a<=10000)
输出描述:
按题目描述输出。
示例
示例1
输入7 4
1 2 2 3 4 4 10复制
输出5
class Solution:
def __init__(self) -> None:
pass
def solution(self):
lis = input().strip().split(' ')
num = input().strip().split(' ')
n = int(lis[0])
tar = int(lis[1])
num = [int(i) for i in num]
k = 0
if num.count(tar) == 0:
return(-1)
if num.count(tar) != 0:
for i in num[::-1]:
k += 1
if i == tar:
return (n - k)
if __name__ == "__main__":
s = Solution()
print(s.solution())