मान लीजिए हमारे पास nums नामक संख्याओं की एक सूची है। अब किसी भी इंडेक्स जोड़े (i, j) पर विचार करें जहां i < j और j - i > 1। फिर सबसे छोटा जोड़ी योग ढूंढें।
इसलिए, यदि इनपुट है nums = [3, 4, 2, 2, 4], तो आउटपुट होगा 5, हम मान 3 और 2 चुन सकते हैं इसलिए कुल योग 5 है। हम 2 और 2 नहीं चुन सकते क्योंकि वे आसन्न हैं, और j - i > 1 प्रतिबंध का उल्लंघन करते हैं।
इसे हल करने के लिए, हम इन चरणों का पालन करेंगे:
n := numsका आकारmin_seen := nums[0]ans := infiके लिए 2 सेn - 1तक की रेंज में, करें:ans := min(ans, min_seen + nums[i])min_seen := min(min_seen, nums[i - 1])
ansलौटाएं
उदाहरण
बेहतर समझ के लिए निम्नलिखित कार्यान्वयन देखें:
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