Middle — Senior
Əks x ilə simmetriya nöqtələrinin cütlüyünün mövcudluğunu necə effektiv yoxlamaq olar?
sobes.tech Süni İntellekt
AI-dan cavab
X dəyərləri əks olan nöqtə cütlüyünün mövcudluğunu səmərəli şəkildə yoxlamaq üçün sürətli axtarış üçün məlumat quruluşundan istifadə edə bilərsiniz — məsələn, bir set.
Algoritm:
- Bütün nöqtələri bir sete yerləşdirin ki, O(1) axtarış mümkün olsun.
- Hər bir nöqtə (x, y) üçün, setdə (-x, y) nöqtəsinin olub-olmadığını yoxlayın.
Əgər belə bir nöqtə tapılsa, bu, Y oxu boyunca bir aynalanma cütlüyünün mövcud olduğunu göstərir.
Python nümunəsi:
points = [(1, 2), (-1, 2), (3, 4), (5, 6)]
point_set = set(points)
for x, y in points:
if (-x, y) in point_set:
print(f"Tapılan aynalanma cütlüyü: ({x}, {y}) və ({-x}, {y})")
Bu yanaşma O(n) vaxtda işləyir və böyük məlumat dəstələri üçün effektivdir.