ฉันสะดุดกับคำถามสัมภาษณ์นี้ และฉันต้องการค้นหาวิธีแก้ปัญหาใน JavaScript (แทนที่จะเป็น Java หรือ C++):
ใช้โครงสร้างข้อมูลที่เหมือนชุดที่รองรับการแทรก ลบ และ GetRandomElement ได้อย่างมีประสิทธิภาพ ตัวอย่าง: หากคุณแทรกองค์ประกอบ 1, 3, 6, 8 และลบ 6 โครงสร้างควรมี [1, 3, 8] ตอนนี้ GetRandom ควรส่งคืนหนึ่งใน 1, 3 หรือ 8 โดยมีความน่าจะเป็นเท่ากัน
นี่คือคำตอบใน Java ที่นี่: โครงสร้างข้อมูล: แทรก ลบ มี รับองค์ประกอบแบบสุ่ม ทั้งหมดที่ O(1) อย่างไรก็ตาม จะไม่มีโค้ดตัวอย่าง ฉันเป็นมือใหม่และกำลังเรียนรู้วิธีใช้ตารางแฮช ดังนั้นหากคุณสามารถอธิบายโค้ดได้ ฉันจะขอบคุณมาก!