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

ค้นหาองค์ประกอบที่ขาดหายไปในอาร์เรย์ของตัวเลขใน JavaScript


เราจำเป็นต้องเขียนฟังก์ชัน JavaScript ที่รับอาร์เรย์ของความยาว เช่น n อาร์เรย์ประกอบด้วยจำนวนเต็มทั้งหมดตั้งแต่ 0 ถึง n (รวมทั้งทั้ง 0 และ n) แต่ไม่มีจำนวนเต็มเพียงตัวเดียว สามารถเป็นตัวเลขใดก็ได้ และอาร์เรย์จะไม่ถูกจัดเรียง งานของฟังก์ชันของเราคือค้นหาจำนวนที่หายไปและส่งคืนในเวลาเชิงเส้นและปริภูมิคงที่

เนื่องจากอาร์เรย์ประกอบด้วยตัวเลขทั้งหมดตั้งแต่ 0 ถึง n แต่มีหนึ่งค่า เราจึงสามารถคำนวณผลรวมขององค์ประกอบทั้งหมดของอาร์เรย์ในเวลาเชิงเส้นได้

แล้วเราก็ลบมันออกจากผลบวกของจำนวนธรรมชาติ n ตัวแรก ซึ่งสามารถคำนวณเวลาและพื้นที่ไม่คงที่ได้ ความแตกต่างระหว่างทั้งสองจะเป็นตัวเลขที่หายไปของเรา

ตัวอย่าง

ต่อไปนี้เป็นรหัส -

const arr = [3, 7, 8, 10, 11, 0, 2, 6, 1, 4, 5];
const findMissing = (arr = []) => {
   const sum = arr.reduce((acc, val) => acc + val);
   const { length: num } = arr;
   const correctSum = (num * (num + 1)) / 2;
   return diff = correctSum - sum;
   return diff;
};
console.log(findMissing(arr));

ผลลัพธ์

ต่อไปนี้เป็นเอาต์พุตคอนโซล -

9