ধরুন আমাদের কাছে স্বতন্ত্র সংখ্যার একটি অ্যারে রয়েছে যেখানে প্রতিটি সংখ্যা পরিসরে থাকে [1, N], অ্যারের আকার (N-4) এবং কোনো একক উপাদান পুনরাবৃত্তি হয় না। সুতরাং, আমরা বুঝতে পারি 1 থেকে N পর্যন্ত চারটি সংখ্যা অ্যারেতে অনুপস্থিত। আমাদের এই 4টি অনুপস্থিত সংখ্যাকে সাজানো পদ্ধতিতে খুঁজে বের করতে হবে।
সুতরাং, যদি ইনপুটটি A =[2, 8, 4, 13, 6, 11, 9, 5, 10] এর মত হয়, তাহলে আউটপুট হবে [1, 3, 7, 12]
এটি সমাধান করতে, আমরা এই পদক্ষেপগুলি অনুসরণ করব -
-
temp_arr :=সমস্ত 0s সহ 4 আকারের একটি অ্যারে
-
আমি 0 থেকে A এর আকারের মধ্যে, কর
-
temp :=|A[i]|
-
যদি temp <=A এর আকার হয়, তাহলে
-
A[temp - 1] :=A[temp - 1] *(-1)
-
-
অন্যথায় যখন temp> A এর আকার , তারপর
-
যদি A-এর টেম্প মোড সাইজ অ-শূন্য হয়, তাহলে
-
temp_arr[A - 1 এর temp মোড সাইজ] :=-1
-
-
অন্যথায়,
-
temp_arr[(A এর টেম্প মোড সাইজ) + A - 1 এর সাইজ] :=-1
-
-
-
-
আমি 0 থেকে A এর আকারের মধ্যে, কর
-
যদি A[i]> 0 হয়, তাহলে
-
প্রদর্শন i + 1
-
-
-
আমি 0 থেকে temp_arr এর আকারের মধ্যে, কর
-
যদি temp_arr[i]>=0 হয়, তাহলে
-
A + i + 1
এর প্রদর্শনের আকার
-
-
উদাহরণ
আরো ভালোভাবে বোঝার জন্য আসুন নিচের বাস্তবায়ন দেখি -
def find_missing_nums(A) : temp_arr = [0]*4 for i in range(0,len(A)) : temp = abs(A[i]) if (temp <= len(A)) : A[temp - 1] = A[temp - 1] * (-1) elif (temp > len(A)) : if (temp % len(A)) : temp_arr[temp % len(A) - 1] = -1 else : temp_arr[(temp % len(A)) +len(A) - 1] = -1 for i in range(0, len(A) ) : if (A[i] > 0) : print((i + 1) , end=" ") for i in range(0, len(temp_arr)) : if (temp_arr[i] >= 0) : print((len(A) + i + 1) , end=" ") A = [2, 8, 4, 13, 6, 11, 9, 5, 10] find_missing_nums(A)
ইনপুট
[2, 8, 4, 13, 6, 11, 9, 5, 10]
আউটপুট
1 3 7 12