เราจำเป็นต้องเขียนฟังก์ชัน JavaScript ที่ใช้อาร์เรย์แบบอ่านอย่างเดียวของจำนวนเต็ม n + 1 ระหว่าง 1 ถึง n
ฟังก์ชันควรหาตัวเลขหนึ่งตัวที่ซ้ำกันในเวลาเชิงเส้นและใช้พื้นที่ O(n) มากที่สุด
ตัวอย่างเช่น หากอาร์เรย์อินพุตคือ −
const arr = [3 4 1 4 1];
จากนั้นผลลัพธ์ควรเป็น −
const output = 1;
หากมีคำตอบที่เป็นไปได้หลายข้อ ( เหมือนด้านบน ) เราควรส่งออกคำตอบใดคำตอบหนึ่ง หากไม่มีรายการซ้ำ เราควรส่งออก -1
ตัวอย่าง
const arr = [3, 4, 1, 4, 1]; const findRepeatedNumber = (arr = []) => { const set = new Set(); for (const item of arr) { if (set.has(item)){ return item; }; set.add(item); }; return -1; }; console.log(findRepeatedNumber(arr));
ผลลัพธ์
สิ่งนี้จะสร้างผลลัพธ์ต่อไปนี้ -
4