เราจำเป็นต้องเขียนฟังก์ชัน 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