मान लीजिए हमारे पास n तत्वों वाला coins नामक एक ऐरे है, और यह हमारे पास मौजूद सिक्कों को दर्शाता है। i-वें सिक्के का मान coins[i] से दर्शाया जाता है। हम कुछ मान x बना सकते हैं यदि हम अपने n सिक्कों में से कुछ का चयन कर सकते हैं जैसे कि उनके मान का योग x हो। हमें 0 से शुरू करके सिक्कों से प्राप्त होने वाले लगातार मानों की अधिकतम संख्या ढूंढनी है।
उदाहरण के लिए, यदि इनपुट coins = [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]
हल करने के चरण
coinsसूची को सॉर्ट करें।ans := 1coinsमें प्रत्येकcoinके लिए:- यदि
coin > ans, तो लूप से बाहर निकलें। ans := ans + coin
- यदि
ansवापस करें।
उदाहरण
बेहतर समझ के लिए निम्नलिखित कार्यान्वयन देखें:
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