add leetcode 1608
This commit is contained in:
parent
c1a78cca82
commit
90f5acae0f
43
leetcode/1608.py
Normal file
43
leetcode/1608.py
Normal file
@ -0,0 +1,43 @@
|
|||||||
|
from typing import List
|
||||||
|
|
||||||
|
|
||||||
|
class Solution:
|
||||||
|
def bin_specialArray(self, nums: List[int]) -> int:
|
||||||
|
nums.sort()
|
||||||
|
left, right = 0, len(nums)
|
||||||
|
|
||||||
|
while left <= right:
|
||||||
|
mid = (left + right) // 2
|
||||||
|
count = sum(1 for num in nums if num >= mid)
|
||||||
|
|
||||||
|
if count == mid:
|
||||||
|
return mid
|
||||||
|
elif count < mid:
|
||||||
|
right = mid - 1
|
||||||
|
else:
|
||||||
|
left = mid + 1
|
||||||
|
|
||||||
|
return -1
|
||||||
|
|
||||||
|
def specialArray(self, nums: List[int]) -> int:
|
||||||
|
"""
|
||||||
|
Determines if there is a special number x in the list such that there are exactly x elements
|
||||||
|
in the list that are greater than or equal to x.
|
||||||
|
|
||||||
|
Args:
|
||||||
|
nums (List[int]): The list of non-negative integers.
|
||||||
|
|
||||||
|
Returns:
|
||||||
|
int: The special number x, or -1 if no such number exists.
|
||||||
|
"""
|
||||||
|
nums.sort()
|
||||||
|
n = len(nums)
|
||||||
|
|
||||||
|
for x in range(1, n + 1):
|
||||||
|
# Count how many numbers are greater than or equal to x
|
||||||
|
count = sum(1 for num in nums if num >= x)
|
||||||
|
|
||||||
|
if count == x:
|
||||||
|
return x
|
||||||
|
|
||||||
|
return -1
|
Loading…
x
Reference in New Issue
Block a user