मान लीजिए कि हमारे पास n तत्वों वाले सिक्के नामक एक सरणी है, और यह उन सिक्कों का प्रतिनिधित्व कर रहा है जो हमारे पास हैं। ith सिक्के का मूल्य सिक्कों के रूप में दर्शाया गया है [i]। हम कुछ मूल्य x बना सकते हैं यदि हम अपने कुछ n सिक्कों का चयन कर सकते हैं जैसे कि उनके मूल्यों का योग x है। हमें 0 से शुरू होने वाले और इसमें शामिल सिक्कों के साथ प्राप्त होने वाले लगातार मूल्यों की अधिकतम संख्या ज्ञात करनी होगी।
इसलिए, यदि इनपुट सिक्कों की तरह है =[1,1,3,4], तो आउटपुट 10 होगा, क्योंकि
-
0 =[]
-
1 =[1]
-
2 =[1,1]
-
3 =[3]
-
4 =[4]
-
5 =[4,1]
-
6 =[4,1,1]
-
7 =[4,3]
-
8 =[4,3,1]
-
9 =[4,3,1,1]
इसे हल करने के लिए, हम इन चरणों का पालन करेंगे -
-
सूची के सिक्कों को क्रमबद्ध करें
-
उत्तर :=1
-
सिक्कों में प्रत्येक सिक्के के लिए, करें
-
अगर सिक्का> उत्तर है, तो
-
लूप से बाहर आएं
-
-
उत्तर :=उत्तर + सिक्का
-
-
वापसी उत्तर
उदाहरण
आइए बेहतर समझ पाने के लिए निम्नलिखित कार्यान्वयन देखें -
def solve(coins): coins.sort() ans = 1 for coin in coins: if coin > ans: break ans+=coin return ans coins = [1,1,3,4] print(solve(coins))
इनपुट
[1,1,3,4]
आउटपुट
10