Computer >> Máy Tính >  >> Lập trình >> Python

Chương trình tìm k trong đó k phần tử có giá trị ít nhất k bằng Python

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