मान लीजिए हमारे पास nums नामक संख्याओं की एक सूची है, हमें एक जोड़ी (i, j) ढूंढनी है जहां i < j, और nums[i] + nums[j] + (i - j) अधिकतम हो।
उदाहरण के लिए, यदि इनपुट nums = [6, 6, 2, 2, 2, 8] है, तो आउटपुट 11 होगा, क्योंकि यदि हम दो 6 चुनते हैं तो इसका स्कोर 6 + 6 + 0 - 1 = 11 है।
इसे हल करने के लिए, हम निम्न चरणों का पालन करेंगे:
- large := nums[0]
- maxi := 0
- i को 1 से nums के आकार तक रेंज में, करें
- large := large - 1
- maxi := large + nums[i] और maxi का अधिकतम
- large := large और nums[i] का अधिकतम
- maxi लौटाएं
बेहतर समझ के लिए निम्न कार्यान्वयन देखें
उदाहरण
class Solution: def solve(self, nums): large = nums[0] maxi = 0 for i in range(1, len(nums)): large -= 1 maxi = max(large + nums[i], maxi) large = max(large, nums[i]) return maxi ob = Solution() nums = [6, 6, 2, 2, 2, 8] print(ob.solve(nums))
इनपुट
[6, 6, 2, 2, 2, 8]
आउटपुट
11