দুই বন্ধু A এবং B-এর কাছে আলাদা আকারের ক্যান্ডি বার আছে। A[i] হল A-এর i-তম ক্যান্ডির আকার এবং B[j] হল B-এর j-তম ক্যান্ডির আকার। তারা একে অপরের সাথে একটি করে ক্যান্ডি বিনিময় করতে চায় যাতে বিনিময়ের পর তাদের মোট ক্যান্ডির আকার সমান হয়। আমাদের বের করতে হবে A কত আকারের ক্যান্ডি দেবে এবং B কত আকারের ক্যান্ডি দেবে। একাধিক সমাধান থাকলে যেকোনো একটি দিলে চলবে।
উদাহরণস্বরূপ, A = [1, 2] এবং B = [2, 3] হলে আউটপুট হবে [1, 2]।
সমাধানের পদ্ধতি
- A এবং B-এর যোগফলের পার্থক্য নিয়ে ২ দিয়ে ভাগ করুন এবং পূর্ণসংখ্যা অংশ নিন
diff = (sum(A) - sum(B)) // 2। - B-কে সেট (set) এ রূপান্তর করুন।
- A-এর প্রতিটি উপাদান
iএর জন্য:- যদি
i - diffB-তে থাকে, তবে[i, i - diff]রিটার্ন করুন।
- যদি
উদাহরণ কোড
class Solution(object):
def fairCandySwap(self, A, B):
diff = (sum(A) - sum(B)) // 2
B = set(B)
for i in A:
if i - diff in B:
return [i, i - diff]
ob1 = Solution()
print(ob1.fairCandySwap([1,2], [2,3]))
ইনপুট
[1,2] [2,3]
আউটপুট
[1,2]