Middle — Senior
Come verificare efficacemente la presenza di una coppia di punti speculari con un x opposto?
sobes.tech AI
Risposta dell'AI
Per verificare efficacemente la presenza di una coppia di punti speculari con valori opposti di x, puoi utilizzare una struttura dati per ricerche rapide — ad esempio, un insieme (set).
Algoritmo:
- Inserisci tutti i punti in un insieme per una ricerca in O(1).
- Per ogni punto (x, y), verifica se nel insieme esiste il punto (-x, y).
Se trovi un tale punto, significa che esiste una coppia speculare lungo l'asse Y.
Esempio in Python:
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"Coppia speculare trovata: ({x}, {y}) e ({-x}, {y})")
Questo metodo funziona in O(n), dove n è il numero di punti, ed è efficiente per grandi insiemi di dati.