मान लीजिए कि हमारे पास संख्याओं की एक सूची है जिसे अंक कहा जाता है, हम सख्ती से बढ़ते मूल्यों के बाद का चयन करते हैं, जहां प्रत्येक दो संख्याओं का अंतर उनके दो सूचकांकों के अंतर के समान होता है। इसलिए हमें इस तरह के बाद के अधिकतम योग का पता लगाना होगा।
इसलिए, यदि इनपुट अंकों की तरह है =[6, 7, 9, 9, 8, 5], तो आउटपुट 22 होगा, जैसा कि हम परवर्ती [6, 7, 9] का चयन करते हैं जिसके सूचकांक [0, 1] हैं। 3]। प्रत्येक क्रमागत संख्याओं के बीच का अंतर [1, 2] है जो उनके सूचकांकों के अंतर के समान है।
इसे हल करने के लिए, हम इन चरणों का पालन करेंगे -
-
d :=एक खाली नक्शा
-
प्रत्येक अनुक्रमणिका के लिए i और मान x अंकों में, करें
-
d[x - i] :=d[x - i] + x
-
-
d में अधिकतम सभी मान लौटाएं
आइए बेहतर समझ पाने के लिए निम्नलिखित कार्यान्वयन देखें -
उदाहरण
class Solution: def solve(self, nums): from collections import defaultdict d = defaultdict(int) for i, x in enumerate(nums): d[x − i] += x return max(d.values()) ob1 = Solution() nums = [6, 7, 9, 9, 8, 5] print(ob1.solve(nums))
इनपुट
[6, 7, 9, 9, 8, 5]
आउटपुट
22