สมมติว่าเรามีรายการตัวเลขที่เรียกว่า nums เราต้องตรวจสอบว่าเราสามารถแยกรายการออกเป็น 1 กลุ่มหรือมากกว่านั้นได้หรือไม่ ดังนี้ 1. ขนาดของแต่ละกลุ่มมากกว่าหรือเท่ากับ 2. 2. ขนาดของกลุ่มทั้งหมดเท่ากัน . 3. ตัวเลขทั้งหมดในแต่ละกลุ่มเหมือนกัน
ดังนั้น หากอินพุตเป็นแบบ [3, 4, 6, 9, 4, 3, 6, 9] เอาต์พุตจะเป็น True
เพื่อแก้ปัญหานี้ เราจะทำตามขั้นตอนเหล่านี้ -
- จำนวน :=แผนที่ที่แต่ละคีย์เป็นองค์ประกอบที่แตกต่างกัน และค่าคือความถี่
- อุณหภูมิ :=0
- สำหรับการนับแต่ละครั้ง ให้ทำ
- ถ้าอุณหภูมิเท่ากับ 0 แล้ว
- อุณหภูมิ :=นับ[นับ]
- มิฉะนั้น
- อุณหภูมิ :=gcd ของการนับ[นับ] และอุณหภูมิ
- ถ้าอุณหภูมิเท่ากับ 1 แล้ว
- คืนค่าเท็จ
- ถ้าอุณหภูมิเท่ากับ 0 แล้ว
- คืนค่า True
ให้เราดูการใช้งานต่อไปนี้เพื่อความเข้าใจที่ดีขึ้น -
ตัวอย่าง
from collections import Counter import math class Solution: def solve(self, nums): counts = Counter(nums) temp = 0 for count in counts: if temp == 0: temp = counts[count] else: temp = math.gcd(counts[count], temp) if temp == 1: return False return True ob = Solution() L = [3, 4, 6, 9, 4, 3, 6, 9] print(ob.solve(L))
อินพุต
[3, 4, 6, 9, 4, 3, 6, 9]
ผลลัพธ์
True