用于查找数组元素也与 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
以上是 用于查找数组元素也与 Python 中的索引相同的最小索引的程序 的全部内容, 来源链接: utcz.com/z/345684.html