ধরুন আমাদের কাছে n সংখ্যা সহ একটি অ্যারে A আছে এবং আরেকটি ইনপুট K আছে, আমাদের সূচকটি খুঁজে বের করতে হবে যেটি একটি প্রদত্ত অপারেশন সম্পাদন করার পরে শূন্যে হ্রাস করা শেষ হবে। অপারেশনটি নিম্নরূপ ব্যাখ্যা করা হয়েছে -
A[0] থেকে A[N – 1] পর্যন্ত, প্রতিটি উপাদানকে A[i] =A[i] – K হিসাবে আপডেট করুন। এখন, যদি A[i]
সমস্ত উপাদান 0 এ না হওয়া পর্যন্ত আমাদের অপারেশনটি পুনরাবৃত্তি করতে হবে। এবং সূচকটি ফেরত দিতে হবে যা শূন্য হয়ে শেষ হবে।
সুতরাং, যদি ইনপুটটি A =[4, 3, 6, 8, 3, 10] এবং K =4 এর মত হয়, তাহলে আউটপুট হবে 5 কারণ অপারেশনগুলি নীচের মত − Operation 1 − A ={0, 0, 2 , 4, 0, 6} অপারেশন 2 − A ={0, 0, 0, 0, 0, 2} অপারেশন 3 − A ={0,0, 0, 0, 0, 0}
এটি সমাধান করতে, আমরা এই পদক্ষেপগুলি অনুসরণ করব -
n :=A
idx :=-1
0 থেকে n রেঞ্জের জন্য, করুন
A[i] :=(A[i] + k - 1) / k
0 থেকে n রেঞ্জের জন্য, করুন
যদি A[i]>=x, তাহলে
x :=A[i]
idx :=i
রিটার্ন আইডিএক্স
আরো ভালোভাবে বোঝার জন্য আসুন নিচের বাস্তবায়ন দেখি -
উদাহরণ
def search_index(A, k):n =len(A) idx =-1 x =-10**9 i এর জন্য রেঞ্জ(n):A[i] =(A[i] + k - 1 ) // রেঞ্জে i এর জন্য k:যদি (A[i]>=x):x =A[i] idx =i idxarr =[4, 3, 6, 8, 3, 10]K =4প্রিন্ট(সার্চ_ইনডেক্স(আর, কে))
ইনপুট
<প্রে>[৪, ৩, ৬, ৮, ৩, ১০], ৪ আউটপুট
5