找到至少有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
- 如果i>num [i-1],则
- 返回-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