मान लीजिए हमारे पास एक ऐरे A और एक और मान k है। हमें A से तत्व लेकर आकार k की एक ऐरे arr बनानी है और अनफेयरनेस को न्यूनतम करना है। यहां अनफेयरनेस की गणना इस फॉर्मूला से की जाती है:
(𝑚𝑎𝑥𝑖𝑚𝑢𝑚 𝑜𝑓 𝑎𝑟𝑟) − (𝑚𝑖𝑛𝑖𝑚𝑢𝑚 𝑜𝑓 𝑎𝑟𝑟)
उदाहरण के लिए, यदि इनपुट है A = [25, 120, 350, 150, 2500, 25, 35] और k = 3, तो आउटपुट होगा 10, क्योंकि हम तत्व [25, 25, 35] ले सकते हैं तो max(arr) = 35 और min(arr) = 25। तो उनका अंतर 10 है।
समाधान दृष्टिकोण
ऐरे को सॉर्ट करें। फिर सभी आकार k की स्लाइडिंग विंडो के लिए, अंतर A[i+k-1] - A[i] की गणना करें और न्यूनतम ट्रैक करें।
Aको सॉर्ट करें।m = A[n-1](अधिकतम संभव अंतर) से आरंभ करें।i = 0सेn-kतक लूप करें:m = min(m, A[i+k-1] - A[i])अपडेट करें।
mलौटाएं।
पायथन कार्यान्वयन
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