ধরা যাক দুটি অ্যারে আছে যারা একে অপরের ডুপ্লিকেট কিন্তু একটি উপাদান কম। আমাদের সেই হারানো উপাদানটি বের করতে হবে।
যেমন, A=[2,5,6,8,10], B=[5,6,8,10] হলে আউটপুট 2।
সমাধানের ধাপসমূহ (বাইনারি সার্চ)
- solve(A, B, N) ফাংশন: যদি N==1: return A[0]; যদি A[0]!=B[0]: return A[0]
- low=0, high=N-1; while low
- return A[high]
- মেইন ফাংশনে আকার চেক করে solve কল করুন।
উদাহরণ
def solve(A, B, N):
if N == 1: return A[0]
if A[0] != B[0]: return A[0]
low = 0; high = N - 1
while low < high:
mid = (low + high) // 2
if A[mid] == B[mid]:
low = mid
else:
high = mid
if low == high - 1: break
return A[high]
def get_missing_element(A, B):
M = len(A); N = len(B)
if N == M-1: return solve(A, B, M)
elif M == N-1: return solve(B, A, N)
else: return "Not found"
A = [2, 5, 6, 8, 10]
B = [5, 6, 8, 10]
print(get_missing_element(A, B))
ইনপুট
[2, 5, 6, 8, 10], [5, 6, 8, 10]
আউটপুট
2