Computer >> คอมพิวเตอร์ >  >> การเขียนโปรแกรม >> Javascript

ค้นหารายการที่ซ้ำกันรายการแรกในอาร์เรย์ในเวลาเชิงเส้น JavaScript


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