Middle — Senior
Kuidas tõhusalt kontrollida, kas on peegelpaar punktidega vastupidise x-ga?
sobes.tech AI
Vastus AI-lt
Efektiivselt kontrollimiseks, kas olemas on peegelpaar punktidega, mille vastandväärtused x-koordinaadil, saab kasutada kiire otsingu andmestruktuuri — näiteks komplekti (set).
Algoritm:
- Pane kõik punktid komplekti, et võimaldada O(1) otsing.
- Iga punkti (x, y) puhul kontrolli, kas komplektis on punkt (-x, y).
Kui selline punkt leitakse, tähendab see, et olemas on peegelpaar Y-telje suhtes.
Python näide:
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"Leiti peegelpaar: ({x}, {y}) ja ({-x}, {y})")
See lähenemine töötab O(n) ajal, kus n on punktide arv, ning on tõhus suurte andmekogumite puhul.