ধরুন আমাদের কাছে দুটি অ্যারে রয়েছে যা একটি উপাদান ছাড়া একে অপরের সদৃশ, সুতরাং, প্রদত্ত অ্যারেগুলির একটি থেকে একটি উপাদান অনুপস্থিত, আমাদের সেই অনুপস্থিত উপাদানটি খুঁজে বের করতে হবে৷
সুতরাং, যদি ইনপুটটি A =[2, 5, 6, 8, 10], B =[5, 6, 8, 10] এর মত হয়, তাহলে দ্বিতীয় অ্যারে থেকে 2 অনুপস্থিত থাকায় আউটপুট হবে 2।
এটি সমাধান করতে, আমরা এই পদক্ষেপগুলি অনুসরণ করব -
-
একটি ফাংশন সমাধান () সংজ্ঞায়িত করুন। এটি A, B, N
লাগবে -
যদি N 1 এর মত হয়, তাহলে
-
ফেরত A[0];
-
-
যদি A[0] B[0] এর মত না হয়, তাহলে
-
ফেরত A[0]
-
-
নিম্ন :=0, উচ্চ :=N - 1
-
যখন কম <উচ্চ, করুন
-
মধ্য :=(নিম্ন + উচ্চ) / 2
-
A[মিড] যদি B[মিড] এর মত হয়, তাহলে
-
নিম্ন :=মধ্য
-
-
অন্যথায়,
-
উচ্চ :=মধ্য
-
-
যদি কম উচ্চ - 1 এর সমান হয়, তাহলে
-
লুপ থেকে বেরিয়ে আসুন
-
-
-
ফেরত A[উচ্চ]
-
প্রধান পদ্ধতি থেকে, নিম্নলিখিতগুলি করুন -
-
M :=A এর সাইজ, N :=B এর সাইজ
-
যদি N হয় M-1 এর মত, তাহলে
-
রিটার্ন সলভ (A, B, M)
-
-
অন্যথায় যখন M হয় N-1 এর মতো, তখন
-
রিটার্ন সলভ (B, A, N)
-
-
অন্যথায়,
-
"পাওয়া যায়নি"
ফেরত দিন
-
উদাহরণ
আরো ভালোভাবে বোঝার জন্য আসুন নিচের বাস্তবায়ন দেখি -
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