मान लीजिए कि हमारे पास संख्याएं हैं जिन्हें अंक कहा जाता है, और एक और मूल्य k है। यदि हम k तत्वों को अंकों से हटाते हैं, तो न्यूनतम (अधिकतम अंक - न्यूनतम अंक) ज्ञात करें।
इसलिए, यदि इनपुट अंकों की तरह है =[4, 10, 3, 2, 8, 9] k =3, तो आउटपुट 2 होगा, क्योंकि अगर हम 10, 8 और 9 को हटा दें तो अधिकतम 4 है, न्यूनतम 2 है तो अंतर 2 है।
इसे हल करने के लिए, हम इन चरणों का पालन करेंगे -
-
सूची संख्या क्रमित करें
-
p :=अंकों का आकार - k
-
मी :=(अंकों का अंतिम तत्व) - अंक[0]
-
मेरे लिए 0 से लेकर अंकों के आकार तक - p, do
-
यदि अंक [i + p - 1] - अंक [i]
-
मी :=अंक [i + p - 1] - अंक[i]
-
-
-
वापसी मी
उदाहरण
आइए बेहतर समझ पाने के लिए निम्नलिखित कार्यान्वयन देखें
def solve(nums, k): nums = sorted(nums) p = len(nums) - k m = nums[-1] - nums[0] for i in range(0, len(nums) - p + 1): if nums[i + p - 1] - nums[i] < m: m = nums[i + p - 1] - nums[i] return m nums = [10, 4, 3, 2, 9, 8] k = 3 print(solve(nums, k))
इनपुट
[10, 4, 3, 2, 9, 8], 3
आउटपुट
2