मान लीजिए कि हमारे पास कॉल की गई संख्याओं की एक सूची है। आइए अब हम सूचकांकों के किसी भी युग्म (i, j) पर विचार करें जहाँ i
इसलिए, यदि इनपुट संख्या =[3, 4, 2, 2, 4] की तरह है, तो आउटपुट 5 होगा, हम मान 3 और 2 का चयन कर सकते हैं इसलिए कुल योग 5 है। हम 2 और 2 का चयन नहीं कर सकते क्योंकि वे आसन्न हैं, और j - i> 1 बाधा का उल्लंघन कर रहे हैं।
इसे हल करने के लिए, हम इन चरणों का पालन करेंगे -
- n :=अंकों का आकार
- min_seen :=nums[0]
- उत्तर:=जानकारी
- 2 से n-1 की श्रेणी में i के लिए
- उत्तर:=न्यूनतम उत्तर और (min_seen + nums[i])
- min_seen :=कम से कम min_seen और nums[i - 1]
- वापसी उत्तर
उदाहरण
आइए बेहतर समझ पाने के लिए निम्नलिखित कार्यान्वयन देखें -
def solve(nums): n = len(nums) min_seen = nums[0] ans = float("inf") for i in range(2, n): ans = min(ans, min_seen + nums[i]) min_seen = min(min_seen, nums[i - 1]) return ans nums = [3, 4, 2, 2, 4] print(solve(nums))
इनपुट
[3, 4, 2, 2, 4]
आउटपुट
5