程序用于查找索引,我们可以在其中插入元素以保持 Python 中的列表排序
pythonserver side programmingprogramming更新于 2026/1/20 4:28:17
假设我们有一个名为 nums 的数字列表,它们按升序排序,我们还有另一个数字目标,我们必须找到应插入目标的索引以保持 nums 排序。如果目标已存在于 nums 中,则返回可以插入目标的最大索引。我们必须不使用库函数来解决这个问题,并在 O(log n) 时间内解决它。
因此,如果输入为 nums = [1,5,6,6,8,9] target = 6,则输出将为 4,因为 6 已经存在,因此要插入它,最大可能的索引是 4,因此数组将类似于 [1,5,6,6,6,8,9]。
要解决这个问题,我们将遵循以下步骤 −
- left := 0
- right :=
- nums 的大小 - 1
- ans := 0
- 当 left <= right 时,执行
- mid := floor of (left + right) / 2
- 如果 target >= nums[mid],然后
- ans := mid + 1
- left := mid + 1
- 否则,
- right := mid - 1
- 返回 ans
示例
让我们看看下面的实现以便更好地理解 −
def solve(nums, target): left, right = 0, len(nums) - 1 ans = 0 while left <= right: mid = (left + right) // 2 if target >= nums[mid]: ans = mid + 1 left = mid + 1 else: right = mid - 1 return ans nums = [1,5,6,6,8,9] target = 6 print(solve(nums, target))
输入
[1,5,6,6,8,9], 6
输出
4
相关文章
有用资源
python 参考教程 - 该教程包含有关 python 的更多信息:https://www.cainiaomax.com/python/

