हमारे पास इस तरह के सकारात्मक पूर्णांकों की एक क्रमबद्ध सरणी है -
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