คำถามสัมภาษณ์ง่ายขึ้นยากขึ้น: ตัวเลขที่ระบุ 1..100, ค้นหาหมายเลขที่หายไปที่ระบุว่า k หายไปอย่างแน่นอน
ฉันมีประสบการณ์การสัมภาษณ์งานที่น่าสนใจสักพัก คำถามเริ่มง่ายจริงๆ: ไตรมาสที่ 1 : เรามีถุงที่มีตัวเลข1, 2, 3, ... 100, แต่ละหมายเลขปรากฏขึ้นหนึ่งครั้งดังนั้นจึงมี 100 หมายเลข ตอนนี้จะมีการสุ่มเลือกหมายเลขหนึ่งออกจากกระเป๋า ค้นหาหมายเลขที่หายไป ฉันเคยได้ยินคำถามสัมภาษณ์นี้มาก่อนแน่นอนดังนั้นฉันจึงตอบอย่างรวดเร็วไปตาม: A1 : ผลรวมของตัวเลข1 + 2 + 3 + … + Nคือ(N+1)(N/2)(ดูWikipedia: ผลรวมของชุดเลขคณิต ) สำหรับผลรวมคือN = 1005050 5050ดังนั้นหากตัวเลขทั้งหมดที่มีอยู่ในถุงรวมจะตรง เนื่องจากหมายเลขหนึ่งหายไปผลรวมจะน้อยกว่านี้และความแตกต่างคือจำนวนนั้น ดังนั้นเราสามารถหาจำนวนที่ขาดหายไปในO(N)เวลาและO(1)สถานที่ เมื่อมาถึงจุดนี้ฉันคิดว่าฉันทำได้ดี แต่จู่ ๆ คำถามก็ถึงจุดเปลี่ยนที่ไม่คาดคิด: Q2 : ถูกต้อง แต่ตอนนี้คุณจะทำอย่างไรถ้าหมายเลขสองหายไป? ฉันไม่เคยเห็น / ได้ยิน / พิจารณาการเปลี่ยนแปลงนี้มาก่อนดังนั้นฉันจึงตื่นตระหนกและไม่สามารถตอบคำถามได้ ผู้สัมภาษณ์ยืนยันในการรู้กระบวนการคิดของฉันดังนั้นฉันจึงบอกว่าบางทีเราสามารถรับข้อมูลเพิ่มเติมได้โดยเปรียบเทียบกับผลิตภัณฑ์ที่คาดหวังหรืออาจทำครั้งที่สองหลังจากรวบรวมข้อมูลบางอย่างจากการผ่านครั้งแรก ฯลฯ …