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:
- Umieść wszystkie punkty w zbiorze, aby umożliwić wyszukiwanie w czasie O(1).
- 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.