हमें एक 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 correctSum - sum;
};
console.log(findMissing(arr));
आउटपुट
9