Giả sử chúng ta có một danh sách các số được gọi là nums, chỉ chứa các số không âm. Nếu có đúng k số phần tử trong num lớn hơn hoặc bằng k, hãy tìm giá trị k. Nếu chúng tôi không thể tìm thấy như vậy, hãy trả về -1.
Vì vậy, nếu đầu vào giống như nums =[6, 4, 0, 8, 2, 9], thì đầu ra sẽ là 4, vì có đúng 4 phần tử lớn hơn hoặc bằng 4:[6, 4, 8, 9].
Để giải quyết vấn đề này, chúng tôi sẽ làm theo các bước sau -
-
sắp xếp các số trong danh sách theo thứ tự ngược lại
-
đối với tôi trong phạm vi từ 1 đến kích thước của nums - 1, thực hiện
-
nếu tôi> nums [i - 1], thì
-
đi ra từ vòng lặp
-
-
ngược lại khi tôi> nums [i] thì
-
trả lại tôi
-
-
-
trả về -1
Ví dụ
Hãy cùng chúng tôi xem cách triển khai sau để hiểu rõ hơn
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))
Đầu vào
[6, 4, 0, 8, 2, 9]
Đầu ra
4