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
廣告
資料結構
網路
關係資料庫管理系統
作業系統
Java
iOS
HTML
CSS
Android
Python
C語言程式設計
C++
C#
MongoDB
MySQL
Javascript
PHP