Sobes.tech
Middle — Senior

Kā efektīvi pārbaudīt, vai ir spoguļpāris punkti ar pretēju x?

sobes.tech AI

Atbilde no AI

Lai efektīvi pārbaudītu, vai pastāv spoguļpāris punktu ar pretējo x vērtību, var izmantot datu struktūru ātrai meklēšanai — piemēram, kopu (set).

Algoritms:

  1. Visus punktus ievieto kopā, lai nodrošinātu O(1) meklēšanu.
  2. Katram punktam (x, y) pārbauda, vai kopā ir punkts (-x, y).

Ja tāds punkts ir atrodams, tas nozīmē, ka pastāv spoguļpāris pa Y asi.

Python piemērs:

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"Atrodots spoguļpāris: ({x}, {y}) un ({-x}, {y})")

Šī pieeja darbojas O(n) laikā, kur n ir punktu skaits, un ir efektīva lieliem datu kopumiem.