Sobes.tech
Middle — Senior

Jak efektivně zkontrolovat přítomnost zrcadlového páru bodů s opačným x?

sobes.tech AI

Odpověď od AI

Pro efektivní kontrolu existence zrcadlového páru bodů s opačnými hodnotami x lze použít datovou strukturu pro rychlé vyhledávání — například množinu (set).

Algoritmus:

  1. Vložte všechny body do množiny pro vyhledávání v O(1).
  2. Pro každý bod (x, y) zkontrolujte, zda v množině existuje bod (-x, y).

Pokud takový bod najdete, znamená to, že existuje zrcadlový pár podle osy Y.

Příklad v Pythonu:

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"Nalezen zrcadlový pár: ({x}, {y}) a ({-x}, {y})")

Tento přístup funguje v O(n), kde n je počet bodů, a je efektivní pro velké datové sady.