ধরুন আমাদের একটি অ্যারে A এবং আরেকটি মান k আছে। আমাদের একটি অ্যারে অ্যারে তৈরি করতে হবে যার আকার k bu হয় A থেকে উপাদানগুলি নিয়ে এবং অন্যায়কে কমিয়ে আনতে হবে। এখানে অন্যায় এই সূত্র দ্বারা গণনা করা হয় −
(𝑚𝑎𝑥𝑖𝑚𝑢𝑚 𝑜𝑓 𝑎𝑟𝑟) − (𝑚𝑖𝑛𝑖𝑚𝑢𝑜)𝑚𝑖𝑛𝑖𝑚𝑢𝑚
সুতরাং, যদি ইনপুট হয় A =[25, 120, 350, 150, 2500, 25, 35] এবং k =3, তাহলে আউটপুট হবে 10, কারণ আমরা উপাদানগুলি [25, 25, 35] নিতে পারি তাই সর্বাধিক (arr) =35 এবং min(arr) =25। সুতরাং তাদের পার্থক্য হল 10।
এটি সমাধান করতে, আমরা এই পদক্ষেপগুলি অনুসরণ করব -
- i:=0
- তালিকা A সাজান
- n :=A এর আকার
- m:=A[n-1]
- x:=0, y:=0
- যখন আমি
- যদি A[i+k-1] - A[i]
- m :=A[i+k-1] - A[i]
- যদি A[i+k-1] - A[i]
উদাহরণ
আরো ভালোভাবে বোঝার জন্য আসুন নিচের বাস্তবায়ন দেখি -
def solve(A, k): i=0 A.sort() n = len(A) m=A[n-1] x=0 y=0 while i<n-k: if(A[i+k-1]-A[i]<m): m=A[i+k-1]-A[i] i+=1 return m A = [25, 120, 350, 150, 2500, 25, 35] k = 3 print(solve(A, k))
ইনপুট
[25, 120, 350, 150, 2500, 25, 35]
আউটপুট
10