हमारे पास धनात्मक पूर्णांकों की एक सॉर्ट की गई सरणी है:
const arr = [1, 3, 6, 10, 11, 15];
हमें एक फ़ंक्शन लिखना है, मान लीजिए findSmallest() जो ऐसी एक सरणी लेता है और सबसे छोटा धनात्मक पूर्णांक लौटाता है जिसे इस मूल सरणी के किसी उप-सरणी के योग के रूप में प्रस्तुत नहीं किया जा सकता।
उदाहरण के लिए:
ऊपर लिखी इस सरणी के लिए 2 सबसे छोटा धनात्मक पूर्णांक है जिसे इस मूल सरणी के किसी उप-सरणी को जोड़कर पहुँचा नहीं जा सकता। तो, अब आइए इस फ़ंक्शन के लिए कोड लिखते हैं। चूँकि सरणी सॉर्ट की गई है, हम इस समस्या का समाधान रैखिक समय में प्राप्त कर सकते हैं। हम शुरू में मानते हैं कि आवश्यक संख्या 1 है, क्योंकि 1 सबसे छोटा मान है जो यह ले सकता है। हम सरणी पर पुनरावृति करेंगे और संबंधित तत्व को आवश्यक संख्या में जोड़ते रहेंगे।
यदि किसी पुनरावृत्ति में, संबंधित संख्या आवश्यक संख्या से अधिक होती है, तो इसका मतलब है कि हमें अपनी आवश्यक संख्या मिल गई अन्यथा हम पुनरावृति करते रहते हैं।
उदाहरण
const arr = [1, 3, 6, 10, 11, 15];
const findSmallest = arr => {
let res = 1;
for (let ind = 0; ind < arr.length && arr[ind] <= res; ind++) {
res += arr[ind];
}
return res;
};
console.log(findSmallest(arr));
आउटपुट
कंसोल में आउटपुट होगा:
2