मान लीजिए कि हमारे पास एक सरणी A और दूसरा मान k है। हमें एक एरे एर बनाना है जिसका आकार k bu है जो A से तत्व ले रहा है और अनुचितता को कम करता है। यहाँ अनुचितता की गणना इस सूत्र द्वारा की जाती है -
(𝑚𝑎𝑥𝑖𝑚𝑢𝑚 ) - (𝑚𝑖𝑛𝑖𝑚𝑢𝑚 )
इसलिए, यदि इनपुट ए =[25, 120, 350, 150, 2500, 25, 35] और के =3 जैसा है, तो आउटपुट 10 होगा, क्योंकि हम तत्व [25, 25, 35] ले सकते हैं। (गिरफ्तारी) =35 और मिनट (गिरफ्तारी) =25। तो उनका अंतर 10 है।
इसे हल करने के लिए, हम इन चरणों का पालन करेंगे -
- i:=0
- सूची A को क्रमित करें
- n :=A का आकार
- एम:=ए[एन-1]
- x:=0, y:=0
- जबकि मैं <एन-के, करते हैं
- अगर A[i+k-1] - A[i]
- m :=A[i+k-1] - A[i]
- अगर A[i+k-1] - A[i]
- i :=i + 1
उदाहरण
आइए बेहतर समझ पाने के लिए निम्नलिखित कार्यान्वयन देखें -
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