ধরা যাক L1 এবং L2 নামক দুটি সংখ্যার লিস্ট রয়েছে, যerais দৈর্ঘ্য n এবং প্রতিটি মান তার নিজস্ব লিস্টে অনন্য, মানরা ১ থেকে n পর্য diocèseে। আমাদের L1-কে L2-তে রূপান্তর করার জন্য ন্যূনতম কতগুলো এডজেসেন্ট (সন্নিকট) সোয়াপ প্রয়োজন তা বের করতে হবে।
উদাহরণ
ইনপুট: L1 = [0, 1, 2, 3], L2 = [2, 0, 1, 3]
আউটপুট: 2
ব্যাখ্যা: প্রথমে ১ এবং ২ সোয়াপ করলে [0, 2, 1, 3], তারপর ০ এবং ২ সোয়াপ করলে [2, 0, 1, 3] হয় যা L2-এর সমান।
সমাধানের ধাপসমূহ
ans := 0- প্রতিটি
reqএর জন্যL2-এ:i := L1.index(req)(req-এরL1-এ ইন্ডেক্স)L1- থেকেi-তম এলিমেন্ট মুছুনans := ans + i
ansফেরত দিন
পাইথন ইমপ্লিমেন্টেশন
class Solution:
def solve(self, L1, L2):
ans = 0
for req in L2:
i = L1.index(req)
L1.pop(i)
ans += i
return ans
ob = Solution()
L1 = [0, 1, 2, 3]
L2 = [2, 0, 1, 3]
print(ob.solve(L1, L2))
ইনপুট
[0, 1, 2, 3], [2, 0, 1, 3]
আউটপুট
2