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

Chương trình chia danh sách thành các danh sách con tăng dần có kích thước lớn hơn k bằng Python

Giả sử chúng ta có một danh sách các số được gọi là num và một giá trị khác k, chúng ta phải kiểm tra xem liệu có thể chia danh sách thành các danh sách con sao cho mỗi danh sách con có độ dài ≥ k và đang tăng dần. Danh sách không cần phải được chia liền nhau.

Vì vậy, nếu đầu vào giống như nums =[6, 7, 5, 10, 13] k =2, thì đầu ra sẽ là True, vì phần chia là [5, 6] và [7, 10, 13].

Để giải quyết vấn đề này, chúng tôi sẽ làm theo các bước sau -

  • c:=Một bản đồ chứa các phần tử của num và số lượng của nó
  • max_count:=tối đa trong số tất cả các tần số của c
  • trả về True khi max_count * k <=kích thước của nums, ngược lại là false

Ví dụ (Python)

Hãy cùng chúng tôi xem cách triển khai sau để hiểu rõ hơn -

from collections import Counter
class Solution:
   def solve(self, nums, k):
      c = Counter(nums)
      max_count = max([v for k, v in c.items()])
      return max_count * k <= len(nums)
ob = Solution()
nums = [6, 7, 5, 10, 13]
k = 2
print(ob.solve(nums, k))

Đầu vào

[6, 7, 5, 10, 13], 2

Đầu ra

False