मान लीजिए कि हमारे पास अंक नामक सकारात्मक संख्याओं की एक सूची है। अब एक ऑपरेशन पर विचार करें जहां हम किन्हीं दो मानों a और b को हटा दें जहां a b और यदि a
इसलिए, यदि इनपुट nums =[2, 4, 5] की तरह है, तो आउटपुट 1 होगा, क्योंकि, हम 4 और 5 का चयन कर सकते हैं और फिर [2, 1] प्राप्त करने के लिए 1 को वापस सम्मिलित कर सकते हैं। अब [1] पाने के लिए 2 और 1 को चुनें।
इसे हल करने के लिए, हम इन चरणों का पालन करेंगे -
- s :=अंकों में मौजूद सभी तत्वों का योग
- फ़ंक्शन f() को परिभाषित करें। यह ले जाएगा मैं, एस
- अगर मैं>=अंकों का आकार, तो
- वापसी
- n :=nums[i]
- अगर s - 2 * n <0, तो
- वापसी f(i + 1, s)
- कम से कम f(i + 1, s - 2 * n) और f(i + 1, s) का रिटर्न
- मुख्य विधि से वापसी f(0, s)
उदाहरण
आइए बेहतर समझ पाने के लिए निम्नलिखित कार्यान्वयन देखें -
def solve(nums): s = sum(nums) def f(i, s): if i >= len(nums): return s n = nums[i] if s - 2 * n < 0: return f(i + 1, s) return min(f(i + 1, s - 2 * n), f(i + 1, s)) return f(0, s) nums = [2, 4, 5] print(solve(nums))
इनपुट
[2, 4, 5]
आउटपुट
1