Computer >> คอมพิวเตอร์ >  >> การเขียนโปรแกรม >> Python

โปรแกรมเพื่อแยกรายการออกเป็นรายการย่อยที่มีขนาดมากกว่า k ที่เพิ่มอย่างเคร่งครัดใน Python


สมมติว่าเรามีรายการตัวเลขที่เรียกว่า nums และอีกค่าหนึ่งคือ k เราต้องตรวจสอบว่าสามารถแยกรายการออกเป็นรายการย่อยได้หรือไม่ โดยรายการย่อยแต่ละรายการจะมีความยาว ≥ k และเพิ่มขึ้นอย่างมาก รายชื่อไม่ต้องแยกกัน

ดังนั้น หากอินพุตมีค่าเท่ากับ nums =[6, 7, 5, 10, 13] k =2 ผลลัพธ์จะเป็น True เนื่องจากการแยกเป็น [5, 6] และ [7, 10, 13]

เพื่อแก้ปัญหานี้ เราจะทำตามขั้นตอนเหล่านี้ -

  • c :=แผนที่ที่มีองค์ประกอบของ nums และการนับ
  • max_count :=สูงสุดของความถี่ทั้งหมดของ c
  • คืนค่า True เมื่อ max_count * k <=ขนาดของ nums เป็นเท็จ

ตัวอย่าง (Python)

ให้เราดูการใช้งานต่อไปนี้เพื่อความเข้าใจที่ดีขึ้น -

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))

อินพุต

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

ผลลัพธ์

False