Wawancara 150 TeratasMudah

Deteksi Kotak

Panduan terperinci dan implementasi Python untuk masalah 'Deteksi Kotak'.

Pernyataan Masalah

Mudah

Anda diberi aliran titik pada bidang X-Y. Rancang struktur data yang:

- Menambahkan poin baru dari aliran. Titik duplikat diperbolehkan dan harus diperlakukan sebagai titik berbeda.

- Dengan adanya titik kueri, hitung banyaknya cara untuk memilih tiga titik dari struktur data sehingga ketiga titik tersebut dan titik kueri tersebut membentuk persegi sejajar sumbu dengan luas positif.

Persegi sejajar sumbu adalah persegi yang semua rusuknya sama panjang dan sejajar atau tegak lurus terhadap sumbu x dan sumbu y.

Implementasikan fungsi detectSquares(operations: list, arguments: list) -> list dengan operasi 'DetectSquares', 'add', atau 'count', dan argumen adalah parameter terkait. Mengembalikan daftar hasil (Tidak ada untuk konstruktor dan penambahan).

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

Contoh

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?
Pertimbangkan untuk menggunakan struktur data khusus Matematika & Geometri seperti kumpulan atau tumpukan.
Edge Cases to Watch
  • Struktur masukan kosong
  • Masukan elemen tunggal
  • Batasan angka yang besar

Siap Memecahkannya?

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

Buka di 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

Sumber Daya Python yang Direkomendasikan

Perluas pengetahuan Anda dengan tutorial interaktif terkait, lembar contekan, dan perbandingan kode.