Sobes.tech
Middle — Senior

Jak skutecznie sprawdzić, czy istnieje para punktów lustrzanych z przeciwnym x?

sobes.tech AI

Odpowiedź od AI

Aby skutecznie sprawdzić, czy istnieje para punktów lustrzanych z przeciwstawnymi wartościami x, można użyć struktury danych do szybkiego wyszukiwania — na przykład zbioru (set).

Algorytm:

  1. Umieść wszystkie punkty w zbiorze, aby umożliwić wyszukiwanie w czasie O(1).
  2. Dla każdego punktu (x, y) sprawdź, czy w zbiorze znajduje się punkt (-x, y).

Jeśli taki punkt zostanie znaleziony, oznacza to, że istnieje para lustrzana względem osi Y.

Przykład w Pythonie:

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"Znaleziono parę lustrzaną: ({x}, {y}) i ({-x}, {y})")

To podejście działa w czasie O(n), gdzie n to liczba punktów, i jest wydajne dla dużych zbiorów danych.