Baru-baru ini saya melakukan wawancara, di mana mereka menanyakan pertanyaan " pencarian ".
Pertanyaannya adalah:
Asumsikan ada sebuah array dari (positif) bilangan bulat, yang masing-masing elemen baik
+1
atau-1
dibandingkan dengan elemen yang berdekatan.Contoh:
array = [4,5,6,5,4,3,2,3,4,5,6,7,8];
Sekarang cari
7
dan kembalikan posisinya.
Saya memberikan jawaban ini:
Simpan nilai dalam larik sementara, urutkan, lalu terapkan pencarian biner.
Jika elemen ditemukan, kembalikan posisinya di array sementara.
(Jika nomor tersebut muncul dua kali maka kembalikan kemunculan pertamanya)
Tapi, mereka sepertinya tidak puas dengan jawaban ini.
Apa jawaban yang benar?