मान लीजिए हमारे पास दो सूचियाँ L1 और L2 हैं, हमें L1 से एक संख्या और L2 से एक संख्या के बीच का सबसे छोटा अंतर ढूंढना है।
इसलिए, यदि इनपुट L1 = [2, 7, 4], L2 = [16, 10, 11] जैसा है, तो आउटपुट 3 होगा, क्योंकि सबसे छोटा अंतर 10 - 7 = 3 है।
इसे हल करने के लिए, हम इन चरणों का पालन करेंगे −
- सूची L1 और सूची L2 को सॉर्ट करें
- ans := infinity
- i := 0, j := 0
- जब तक i < L1 का आकार और j < L2 का आकार, करें
- ans := ans और |L1[i] - L2[j]| का न्यूनतम
- यदि L1[i] < L2[j], तो
- i := i + 1
- अन्यथा,
- j := j + 1
- ans वापस करें
बेहतर समझ के लिए निम्नलिखित कार्यान्वयन देखें −
उदाहरण
class Solution: def solve(self, L1, L2): L1.sort() L2.sort() ans = float("inf") i = j = 0 while i < len(L1) and j < len(L2): ans = min(ans, abs(L1[i] - L2[j])) if L1[i] < L2[j]: i += 1 else: j += 1 return ans ob = Solution() L1 = [2, 7, 4] L2 = [16, 10, 11] print(ob.solve(L1, L2))इनपुट
[2, 7, 4], [16, 10, 11]
आउटपुट
3