मान लीजिए कि हमें एक सीढ़ी पर चढ़ने की जरूरत है जिसमें n सीढ़ियां हैं, और हम सीढ़ियां चढ़कर कुछ अतिरिक्त व्यायाम करने का निर्णय लेते हैं।
हम एक ही छलांग में अधिकतम k चरणों को कवर कर सकते हैं। सीढ़ियों में सीढ़ियों की संख्या के बावजूद k या तो 1 या 2 होगा।
हमें छलांग के सभी संभावित अनुक्रमों को वापस करने की आवश्यकता है जो आप सीढ़ी पर चढ़ने के लिए ले सकते हैं, क्रमबद्ध करें।
उदाहरण के लिए -
for n = 4 and k = 2,
आउटपुट होना चाहिए -
climbingStaircase(n, k) = [[1, 1, 1, 1], [1, 1, 2], [1, 2, 1], [2, 1, 1], [2, 2]];
उदाहरण
इसके लिए कोड होगा -
const n = 4; const climbStairs = (n) => { if (n == 0) return 0; let memory = new Map(); let recur = (left) => { if (memory.has(left)) return memory.get(left); if (left <= 0) return 0; if (left == 1) return 1; if (left == 2) return 2; memory.set(left, recur(left − 2) + recur(left − 1)); return memory.get(left); }; return recur(n); }; console.log(climbStairs(n));
आउटपुट
और कंसोल में आउटपुट होगा -
5