मान लीजिए कि हमारे पास एक सरणी संख्या और दूसरा मान k है। एक ऑपरेशन में, हम अंकों के एक इंडेक्स का चयन कर सकते हैं और उस इंडेक्स पर तत्व को 1 से बढ़ा सकते हैं। हमें अधिकतम k संख्या में ऑपरेशन करने के बाद किसी तत्व की अधिकतम संभव आवृत्ति का पता लगाना होगा।
इसलिए, यदि इनपुट nums =[8,3,6], k =9 की तरह है, तो आउटपुट 3 होगा क्योंकि हम इसे [8,8,8] बनाने के लिए 3 को 5 से, 6 को 2 से अपडेट कर सकते हैं। 7 ऑपरेशनों के बाद हमारे पास अधिकतम आवृत्ति 3 है।
इसे हल करने के लिए, हम इन चरणों का पालन करेंगे -
-
सूची संख्या क्रमित करें
-
बाएँ:=0, दाएँ:=1
-
जबकि सही <अंकों का आकार, करें
-
k :=k -(अंक [दाएं] - अंक [दाएं -1]) * (दाएं - बाएं)
-
अगर के <0, तो
-
k :=k + अंक [दाएं] - अंक [बाएं]
-
बाएँ :=बाएँ + 1
-
-
दाएँ :=दाएँ + 1
-
-
दाएँ-बाएँ लौटें
उदाहरण
आइए बेहतर समझ पाने के लिए निम्नलिखित कार्यान्वयन देखें -
def solve(nums, k): nums.sort() left = 0 right = 1 while right < len(nums): k -= (nums[right] - nums[right-1]) * (right - left) if k < 0: k += nums[right] - nums[left] left += 1 right += 1 return right - left nums = [8,3,6] k = 9 print(solve(nums, k))
इनपुट
[8,3,6], 9
आउटपुट
3