इस समस्या में धनात्मक पूर्णांकों की सूची दी गई है। प्रत्येक पूर्णांक यह दर्शाता है कि वर्तमान तत्व से कितने अधिकतम कदम उठाए जा सकते हैं। पहले तत्व से शुरू करते हुए, हमें सूची के अंतिम आइटम तक पहुंचने के लिए न्यूनतम संख्या में छलांग लगानी होगी।
डायनेमिक प्रोग्रामिंग दृष्टिकोण के लिए, जंप एरे को आवश्यक न्यूनतम संख्या में जंप को स्टोर करने के लिए परिभाषित किया गया है। जम्प्स के मान की तरह[i], यह इंगित करता है कि 0वें इंडेक्स से सरणी के ith इंडेक्स तक पहुंचने के लिए कितने न्यूनतम जंप की आवश्यकता है।
इनपुट और आउटपुट
<पूर्व>इनपुट:पूर्णांकों की सूची। {1, 3, 5, 8, 9, 2, 6, 7, 6, 8, 9}आउटपुट:अंतिम स्थान तक पहुँचने के लिए कूदने की न्यूनतम संख्या। यह 3 है। मान 1 से शुरू करें, 3 पर जाएँ। फिर 3 मान कूदता है और 8 तक पहुँचता है। फिर 8 मान कूदें और अंतिम तत्व तक पहुँचें।एल्गोरिदम
minPossibleJump(list, n)
इनपुट: संख्या सरणी, सरणी में तत्वों की संख्या।
आउटपुट: अंत तक पहुँचने के लिए आवश्यक छलांगों की न्यूनतम संख्या।
यदि n =0 या सूची [0] =0 है, तो n आकार की छलांग नामक एक सरणी को परिभाषित करना शुरू करें, फिर कूदें [0]:=0 के लिए i:=1 से n, जंप करें [i]:=जे के लिए:=0 से मैं, अगर मैं <=जे + सूची [जे] और कूद [जे] , तो कूदो [i]:=न्यूनतम कूद [i] और (कूद [जे] + 1) ब्रेक किया गया लूप वापस कूद गया [n-1]अंत
उदाहरण
#शामिल करेंनेमस्पेस का उपयोग कर std;int min(int x, int y) {रिटर्न (x आउटपुट
अंत तक पहुंचने के लिए कूदने की न्यूनतम संख्या है:3