用于查找数组元素也与 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

回到顶部