Cho danh sách nums, kiểm tra xem có thể chia thành 1 hoặc nhiều nhóm thỏa mãn: 1. Kích thước mỗi nhóm >= 2. 2. Tất cả nhóm cùng kích thước. 3. Tất cả số trong mỗi nhóm giống nhau.
Ví dụ, [3, 4, 6, 9, 4, 3, 6, 9], đầu ra True.
Các bước giải quyết:
counts:= bản đồ tần suất các phần tử khác nhau.temp := 0.- Duyệt từng tần suất
counttrongcounts:- Nếu
temp == 0,temp = counts[count]. - Ngược lại,
temp = gcd(counts[count], temp). - Nếu
temp == 1, trả vềFalse.
- Nếu
- Trả về
True.
Ví dụ minh họa
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))
Đầu vào
[3, 4, 6, 9, 4, 3, 6, 9]
Đầu ra
True