首页 文章资讯内容详情

用于查找数组元素也与 Python 中的索引相同的最小索引的程序

2026-06-03 1 花语

假设我们有一个名为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