यहां पहला सवाल, अगर यह डुप्लिकेट या बुरी चुनौती है तो मुझ पर चिल्लाओ मत।
परिचय
मैंने खुद इस चुनौती के बारे में सोचा, और यह शुरुआती कोड-गोल्फरों के लिए एक अच्छी बुनियादी पहेली लगती है। यह मुझे यह तय करने में भी मदद कर सकता है कि कौन सी कोड-गोल्फिंग भाषा सीखनी है।
चुनौती
पूर्णांकों की एक ऐसी सरणी को देखते हुए जो n
आउटपुट के बराबर या उससे कम होती है , उस सरणी से न्यूनतम संख्याओं की संख्या वापस करती है जो बिलकुल योग करती है n
।
आप एक फ़ंक्शन या पूर्ण प्रोग्राम लिखना चुन सकते हैं।
इनपुट
आप सुरक्षित रूप से मान सकते हैं 0 <= n < 2^31
।
किसी भी प्रकार की एक सरणी या सूची ( vector
C ++ या जावा के LinkedList
लिए अनुमति दी जाती है), साथ में n
और एक वैकल्पिक पैरामीटर लें length
, जो सरणी की लंबाई को निर्दिष्ट करता है।
आप इनपुट को स्पेस-सेपरेटेड स्ट्रिंग के रूप में भी ले सकते हैं, n
जो कॉमा या स्पेस से अलग होता है:
1 5 7 3 7 3 6 3 2 6 3,10
1 5 7 3 7 3 6 3 2 6 3 10
अगर यह आसान है।
उत्पादन
आउटपुट, या उस सरणी से न्यूनतम संख्याओं को वापस लौटाएं जो बिल्कुल योग करते हैं n
। उपरोक्त उदाहरण का उपयोग करना:
1 5 7 3 7 3 6 3 2 6 3,10
आपका कार्यक्रम प्रिंट होना चाहिए:
2
क्योंकि संख्या की न्यूनतम संख्या है कि अप करने के लिए योग 10
है 2
( 7
और 3
)।
इस मामले में कि कोई समाधान नहीं है, एक नकारात्मक प्रिंट, या वापस लौटें 0
, "कोई समाधान नहीं" (हालांकि वह स्मार्ट नहीं होगा), ∞
(जैसा कि सुझाव दिया गया है), या किसी भी अन्य झूठा मूल्य, एक खाली स्ट्रिंग के अपवाद के साथ।
उदाहरण इनपुट और आउटपुट
इनपुट:
1 5 7 3 7 3 6 3 2 6 3,10
143 1623 1646 16336 1624 983 122,18102
5 6 9,12
आउटपुट:
2
3
-1
स्कोरिंग
यह कोड-गोल्फ है, इसलिए बाइट्स जीत में सबसे छोटा कोड है।
शीर्ष उत्तर क्रिसमस पर स्वीकार किया जाएगा।
false
बिना समाधान वाले मामलों के लिए आउटपुट दे सकते हैं?