हमें एक जावास्क्रिप्ट फ़ंक्शन लिखने की आवश्यकता है जो लंबाई की संख्या की एक सरणी लेता है, जैसे कि 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