1346. Semak Jika N dan Doublenya Wujud
Kesukaran: Mudah
Topik: Tatasusunan, Jadual Hash, Dua Penunjuk, Carian Binari, Isih
Memandangkan susunan tatasusunan integer, semak sama ada wujud dua indeks i dan j supaya :
Contoh 1:
Contoh 2:
Kekangan:
Petunjuk:
Penyelesaian:
Kami boleh menggunakan jadual cincang (tatasusunan bersekutu) untuk menjejaki elemen yang telah kami temui semasa melelakan tatasusunan. Ideanya adalah untuk menyemak setiap elemen arr[i] jika dua kali ganda (iaitu, 2 * arr[i]) atau separuh (iaitu, arr[i] / 2 jika ia nombor genap) telah ditemui.
Berikut ialah penyelesaian langkah demi langkah:
Mari laksanakan penyelesaian ini dalam PHP: 1346. Semak Jika N dan Doublenya Wujud
Penjelasan:
- Jadual Hash: Kami menggunakan tatasusunan bersekutu $hashTable untuk menyimpan elemen yang kami temui setakat ini.
- Syarat Pertama: Untuk setiap elemen arr[i], kami menyemak sama ada arr[i] * 2 wujud dalam jadual cincang.
- Keadaan Kedua: Jika elemen genap, kami menyemak sama ada arr[i] / 2 wujud dalam jadual cincang.
- Menambah pada Jadual Hash: Selepas menyemak, kami menambah arr[i] pada jadual cincang untuk rujukan masa hadapan.
- Kembali: Jika kami menemui padanan, kami segera kembali benar. Jika tiada padanan ditemui selepas gelung, kami mengembalikan palsu.
Kerumitan Masa:
Pautan Kenalan
Jika anda mendapati siri ini membantu, sila pertimbangkan untuk memberi repositori bintang di GitHub atau berkongsi siaran pada rangkaian sosial kegemaran anda ?. Sokongan anda amat bermakna bagi saya!
Jika anda mahukan kandungan yang lebih berguna seperti ini, sila ikuti saya:
Atas ialah kandungan terperinci Semak Jika N dan Gandaannya Wujud. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!