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
廣告