मान लीजिए हमारे पास nums नामक एक सरणी और दो मान limit और goal हैं। सरणी विशेष है क्योंकि सभी i के लिए 0 से सरणी के आकार - 1 तक |nums[i]| <= limit है। हमें सरणी में डालने के लिए न्यूनतम तत्वों की संख्या ज्ञात करनी है ताकि सरणी का योग goal के समान हो जाए। सरणी तत्व limit मान से अधिक नहीं होना चाहिए।
इसलिए, यदि इनपुट है nums = [2,-2,2], limit = 3, goal = -4, तो आउटपुट 2 होगा क्योंकि हम दो (-3) जोड़ सकते हैं, ताकि सरणी [2,-2,2,-3,-3] बन जाए।
इसे हल करने के लिए, हम निम्न चरणों का पालन करेंगे:
s := nums में मौजूद सभी तत्वों का योग
ab := |goal - s|
(ab / limit) की सीलिंग वापस करें
उदाहरण
बेहतर समझ के लिए निम्न कार्यान्वयन देखें:
from math import ceil
def solve(nums, limit, goal):
s = sum(nums)
ab = abs(goal - s)
return ceil(ab / limit)
nums = [2,-2,2]
limit = 3
goal = -4
print(solve(nums, limit, goal))
इनपुट
[2,-2,2], 3, -4
आउटपुट
2.0