สมมติว่าเรามีรายการตัวเลขที่เรียกว่า 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