मान लीजिए कि हमारे पास दो एरे ए और बी हैं, इन एरे में कुछ तत्व हैं। हमें उनका प्रतिच्छेदन खोजना होगा। तो अगर A =[1, 4, 5, 3, 6], और B =[2, 3, 5, 7, 9], तो चौराहा [3, 5]
होगाइसे हल करने के लिए, हम इन चरणों का पालन करेंगे -
- दो सरणियाँ A और B लें
- यदि A की लंबाई B की लंबाई से छोटी है, तो उन्हें स्वैप करें
- सरणी में तत्वों की आवृत्ति की गणना करें और उन्हें m में संग्रहीत करें
- बी में प्रत्येक तत्व ई के लिए, यदि ई एम में मौजूद है, और आवृत्ति गैर-शून्य है,
- आवृत्ति m[e] 1 से कम करें
- परिणामी सरणी में ई डालें
- परिणामी सरणी लौटाएं
उदाहरण
आइए बेहतर समझ पाने के लिए निम्नलिखित कार्यान्वयन देखें -
class Solution(object):
def intersect(self, nums1, nums2):
"""
:type nums1: List[int]
:type nums2: List[int]
:rtype: List[int]
"""
m = {}
if len(nums1)<len(nums2):
nums1,nums2 = nums2,nums1
for i in nums1:
if i not in m:
m[i] = 1
else:
m[i]+=1
result = []
for i in nums2:
if i in m and m[i]:
m[i]-=1
result.append(i)
return result
ob1 = Solution()
print(ob1.intersect([1,4,5,3,6], [2,3,5,7,9])) इनपुट
[1,4,5,3,6] [2,3,5,7,9]
आउटपुट
[3,5]