समस्या विवरण
बॉब के पास संख्याओं की सूची nums है। प्रत्येक टर्न में वह दो तत्व चुनता है और उन्हें उनके योग के बराबर एक धनात्मक पूर्णांक से बदल देता है। जीत तब होती है जब सभी संख्याएं सम हो जाएं। न्यूनतम टर्न्स की संख्या ज्ञात करें, असंभव हो तो -1 वापस करें।
उदाहरण
इनपुट: [2, 3, 4, 9, 7, 13]
आउटपुट: 2
व्याख्या: 3+9=12 (सम), 7+13=20 (सम) → 2 टर्न्स
मुख्य अंतर्दृष्टि
दो विषम संख्याओं का योग सम होता है। इसलिए विषम संख्याओं को जोड़ियों में बांटना होगा। यदि विषम संख्याओं की संख्या सम है, तो count_odd / 2 टर्न्स लगेंगे। यदि विषम संख्याओं की संख्या विषम है, तो असंभव (-1)।
पायथन कार्यान्वयन
class Solution:
def solve(self, nums):
odd_nums = [x for x in nums if x % 2 == 1]
if len(odd_nums) % 2 == 0:
return len(odd_nums) // 2
return -1
ob = Solution()
print(ob.solve([2, 3, 4, 9, 7, 13]))
इनपुट
[2, 3, 4, 9, 7, 13]
आउटपुट
2