Python程序:查找列表中至少有k个元素值大于等于k的k值
假设我们有一个名为nums的数字列表,其中只包含非负数。如果nums中恰好有k个元素大于或等于k,则找到k的值。如果找不到这样的k,则返回-1。
因此,如果输入类似于nums = [6, 4, 0, 8, 2, 9],则输出将为4,因为恰好有4个元素大于或等于4:[6, 4, 8, 9]。
为了解决这个问题,我们将遵循以下步骤:
将列表nums按降序排序
对于i从1到nums的大小-1,执行以下操作:
如果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
广告