Le migliori 150 intervisteFacile

Rileva quadrati

Guida dettagliata e implementazione Python per il problema "Rileva quadrati".

Dichiarazione del problema

Facile

Ti viene dato un flusso di punti sul piano X-Y. Progettare una struttura dati che:

- Aggiunge nuovi punti dallo stream. Sono consentiti punti duplicati che devono essere trattati come punti diversi.

- Dato un punto di query, conta il numero di modi per scegliere tre punti dalla struttura dati in modo tale che i tre punti e il punto di query formino un quadrato allineato all'asse con area positiva.

Un quadrato allineato all'asse è un quadrato i cui bordi hanno tutti la stessa lunghezza e sono paralleli o perpendicolari all'asse x e all'asse y.

Implementa una funzione detectSquares(operations: list, arguments: list) -> list dove le operazioni sono "DetectSquares", "add" o "count" e gli argomenti sono i parametri corrispondenti. Restituisce un elenco di risultati (Nessuno per costruttore e aggiunta).

Vincoli
  • point.length == 2
  • 0 <= x, y <= 1000
  • At most 3000 calls in total will be made to add and count

Esempi

Example 1
Input
["DetectSquares","add","add","add","count","count","add","count"], [[],[3,10],[11,2],[3,2],[11,10],[14,8],[11,2],[11,10]]
Output
[None,None,None,None,1,0,None,2]
Explanation

After adding (3,10), (11,2), (3,2): count(11,10) finds 1 square with corners (3,10),(11,10),(11,2),(3,2). count(14,8) finds 0. After adding another (11,2): count(11,10) finds 2 squares (using each copy of (11,2)).

Need a Hint?
Prendi in considerazione l'utilizzo di strutture dati specifiche per matematica e geometria come set o heap.
Edge Cases to Watch
  • Strutture di input vuote
  • Ingressi a elemento singolo
  • Grandi limiti numerici

Pronto a risolvere?

Open the problem in PyRun's browser-based Python editor. Your code runs fully offline — no server required.

Apri nell'editor
Found this breakdown helpful?

PyRun is built and maintained by an independent solo developer. If this helped your interview prep, consider buying a coffee!

Buy me a coffee

Risorse Python consigliate

Espandi le tue conoscenze con tutorial interattivi, foglietti illustrativi e confronti di codici correlati.