找到至少有k个元素值不小于k的Python程序

找到至少有k个元素值不小于k的Python程序

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

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

为了解决这个问题,我们将按照以下步骤执行 –

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

  • 对于i在1到nums大小-1的范围内,做

    • 如果i>num [i-1],则
      • 退出循环
    • 否则当i>num [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

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程