मान लीजिए हमारे पास nums नामक संख्याओं की एक लिस्ट है और दो अन्य वेरिएबल k और t हैं। एक ऑपरेशन पर विचार करें जहां हम रेंज [-k, k] में एक एलिमेंट e चुनते हैं और इसे nums के अंत में इंसर्ट करते हैं। हमें न्यूनतम ऑपरेशन की संख्या ढूंढनी है ताकि nums का योग टार्गेट के बराबर हो जाए।
उदाहरण के लिए, यदि इनपुट है nums = [3, 1], k = 4, t = 19, तो आउटपुट होगा 4 क्योंकि हम [3, 1, 4, 4, 4, 3] की तरह जोड़ सकते हैं जिससे योग 19 हो जाता है।
समाधान दृष्टिकोण
वर्तमान योग और टार्गेट के बीच का अंतर diff = |t - sum(nums)| है। प्रत्येक ऑपरेशन अधिकतम k योगदान दे सकता है। न्यूनतम ऑपरेशन ceil(diff / k) है।
total = sum(nums)की गणना करें।diff = abs(t - total)।result = diff // k।- यदि
result * k != diff, तोresult += 1। resultलौटाएं।
पायथन कार्यान्वयन
def solve(nums, k, t):
total = sum(nums)
diff = abs(t - total)
result = diff // k
if result * k != diff:
result = result + 1
return result
nums = [3, 1]
k = 4
t = 19
print(solve(nums, k, t))
इनपुट
[3, 1], 4, 19
आउटपुट
4