Middle — Senior
Kā efektīvi pārbaudīt, vai ir spoguļpāris punkti ar pretēju x?
sobes.tech AI
Atbilde no AI
Lai efektīvi pārbaudītu, vai pastāv spoguļpāris punktu ar pretējo x vērtību, var izmantot datu struktūru ātrai meklēšanai — piemēram, kopu (set).
Algoritms:
- Visus punktus ievieto kopā, lai nodrošinātu O(1) meklēšanu.
- Katram punktam (x, y) pārbauda, vai kopā ir punkts (-x, y).
Ja tāds punkts ir atrodams, tas nozīmē, ka pastāv spoguļpāris pa Y asi.
Python piemērs:
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"Atrodots spoguļpāris: ({x}, {y}) un ({-x}, {y})")
Šī pieeja darbojas O(n) laikā, kur n ir punktu skaits, un ir efektīva lieliem datu kopumiem.