用 Python 编写程序,查找其中 k 个元素的值至少为 k 的 k

pythonserver side programmingprogramming更新于 2025/12/18 6:04:17

假设我们有一个名为 nums 的数字列表,其中只包含非负数。如果 nums 中恰好有 k 个元素大于或等于 k,则查找值 k。如果找不到这样的元素,则返回 -1。

因此,如果输入为 nums = [6, 4, 0, 8, 2, 9],则输出将为 4,因为恰好有 4 个元素大于或等于 4:[6, 4, 8, 9]。

为了解决这个问题,我们将遵循以下步骤 −

  • 按相反顺序对列表 nums 进行排序

  • 对于范围为 1 到 nums 大小 - 1 的 i,执行

    • 如果 i > nums[i - 1],则

      • 退出循环

    • 否则,当 i > nums[i],然后

      • 返回 i

  • 返回 -1

示例

让我们看看下面的实现以便更好地理解

def solve(nums):
   nums.sort(reverse=True)
   for i in range(1, len(nums)):
      if i >nums[i - 1]:
         break
      elif i > nums[i]:
         return i
   return -1

nums = [6, 4, 0, 8, 2, 9]
print(solve(nums))

输入

[6, 4, 0, 8, 2, 9]

输出

4

相关文章


有用资源