ধরুন আমাদের দুটি সাজানো তালিকা A এবং B আছে। আমাদের সেগুলিকে একত্রিত করতে হবে এবং শুধুমাত্র একটি সাজানো তালিকা C তৈরি করতে হবে। তালিকার আকার ভিন্ন হতে পারে।
একটি উদাহরণের জন্য, ধরুন 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
- যখন i <(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
আসুন আরও ভালভাবে বোঝার জন্য বাস্তবায়ন দেখি
উদাহরণ
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]