用于查找数组元素也与 Python 中的索引相同的最小索引的程序
假设我们有一个名为nums的元素列表,其中所有项目都是唯一的,并且它们按升序排序,我们必须找到最小值i使得nums[i]=i。如果我们找不到任何解决方案,则返回-1。我们必须在O(log(n))时间内解决这个问题。
因此,如果输入类似于nums=[-4,-1,2,3,8],那么输出将为2,因为nums[2]=2和nums[3]=3但2更小。
示例
让我们看下面的实现来更好地理解
def solve(nums):
ret = -1
lhs = 0
rhs = len(nums) - 1
while lhs <= rhs:
mid = (lhs + rhs) //2
if nums[mid] == mid:
ret = mid
if nums[mid] >= mid:
rhs = mid - 1
else:
lhs = mid + 1
return ret
nums = [-4, -1, 2, 3, 8]
print(solve(nums))输入
[-4, -1, 2, 3, 8]输出结果
2
热门推荐
10 小红书平安祝福语简短
11 生日祝福语大全女孩简短
12 收生日红包祝福语 简短
13 领证幽默祝福语简短
14 法考面试祝福语简短
15 老哥出门祝福语简短语
16 送灯祝福语简短独特
17 幼儿狗年祝福语大全简短
18 好听的元旦简短祝福语