मान लीजिए कि हमारे पास दो क्रमबद्ध सूचियां ए और बी हैं। हमें उन्हें मर्ज करना है और केवल एक क्रमबद्ध सूची सी बनाना है। सूचियों का आकार भिन्न हो सकता है।
उदाहरण के लिए, मान लीजिए A =[1,2,4,7] और B =[1,3,4,5,6,8], तो मर्ज की गई सूची C होगी [1,1,2,3,4, 4,5,6,7,8]
हम इसे रिकर्सन का उपयोग करके हल करेंगे। तो फंक्शन नीचे की तरह काम करेगा -
- x:=एक नई सूची
- i:=0, j:=0
- जबकि मैं <आकार (lst0) और j <आकार (lst1), करते हैं
- अगर lst0[i]> lst1[j], तो
- x के अंत में lst1[j] डालें
- j:=j+1
- अन्यथा जब lst0[i]
- x के अंत में lst0[i] डालें
- i:=i+1
- अगर lst0[i]> lst1[j], तो
- अन्यथा,
- x के अंत में lst0[i] डालें
- x के अंत में lst1[j] डालें
- i:=i+1, j:=j+1
- x के अंत में lst1[j] डालें
- j:=j+1
आइए बेहतर ढंग से समझने के लिए कार्यान्वयन देखें
उदाहरण
class Solution: def solve(self, lst0, lst1): x=[] i=0 j=0 while(i<len(lst0) and j<len(lst1)): if(lst0[i]>lst1[j]): x.append(lst1[j]) j=j+1 elif(lst0[i]<lst1[j]): x.append(lst0[i]) i=i+1 else: x.append(lst0[i]) x.append(lst1[j]) i=i+1 j=j+1 while(i<len(lst0)): x.append(lst0[i]) i=i+1 while(j<len(lst1)): x.append(lst1[j]) j=j+1 return x ob = Solution() print(ob.solve([1,2,4,7], [1,3,4,5,6,8]))
इनपुट
[1,2,4,7], [1,3,4,5,6,8]
आउटपुट
[1, 1, 2, 3, 4, 4, 5, 6, 7, 8]