Sobes.tech
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:

  1. Pane kõik punktid komplekti, et võimaldada O(1) otsing.
  2. 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.