8
วิธีที่มีประสิทธิภาพในการค้นหาองค์ประกอบ
เมื่อเร็ว ๆ นี้ฉันได้ให้สัมภาษณ์ซึ่งพวกเขาถามคำถาม " ค้นหา " คำถามคือ: ถือว่ามีอาร์เรย์ของ (บวก) จำนวนเต็มซึ่งแต่ละองค์ประกอบเป็นอย่างใดอย่างหนึ่ง+1หรือ-1เมื่อเทียบกับองค์ประกอบที่อยู่ใกล้เคียง ตัวอย่าง: array = [4,5,6,5,4,3,2,3,4,5,6,7,8]; ตอนนี้ค้นหา7และส่งคืนตำแหน่ง ฉันให้คำตอบนี้: จัดเก็บค่าในอาร์เรย์ชั่วคราวเรียงลำดับแล้วใช้การค้นหาแบบไบนารี หากพบองค์ประกอบให้คืนตำแหน่งในอาร์เรย์ชั่วคราว (หากตัวเลขเกิดขึ้นสองครั้งให้คืนค่าที่เกิดขึ้นครั้งแรก) แต่ดูเหมือนพวกเขาจะไม่พอใจกับคำตอบนี้ คำตอบที่ถูกต้องคืออะไร?