मान लीजिए कि दो मित्र अमल और बिमल संख्याओं की एक क्रमबद्ध सूची के साथ एक खेल खेल रहे हैं जिसे अंक कहते हैं। इस खेल में अमल एक ही बारी में कोई तीन अंक चुनता है। बिमल उनमें से एक को हटा देता है, और फिर अमल उनमें से एक को हटा देता है। सूची विषम संख्या में तत्वों से शुरू होती है। यहां अमला सूची में दोहराए गए तत्वों को शामिल करने के लिए आवश्यक घुमावों की संख्या को कम करना चाहता है, बिमल घुमावों की संख्या को अधिकतम करना चाहता है। अगर अमल और बिमल बेहतर तरीके से काम करते हैं, तो हमें यह पता लगाना होगा कि इस खेल के लिए कितने टर्न की जरूरत है।
इसलिए, यदि इनपुट संख्या =[1, 1, 2, 3, 3, 3, 4] की तरह है, तो आउटपुट 2 होगा, जैसे अगर अमल [1, 1, 3] का चयन करता है, तो बिमल अधिकतम करने के लिए 3 को हटा देता है बदल जाता है, सरणी [1, 1, 2, 3, 3, 4] है, अमल 1 हटाता है, इसलिए सरणी [1,2,3,3,4] है, फिर अगली बारी में अमल [3,3, 4], फिर बिमल अधिकतम घुमावों के लिए 4 हटा देगा। तो अमल 3 को हटा सकता है और सरणी [1,2,3] होगी, कोई डुप्लिकेट तत्व नहीं है।
इसे हल करने के लिए, हम इन चरणों का पालन करेंगे -
दोहराता है :=0
मेरे लिए 1 से लेकर अंकों के आकार तक, करें
अगर nums[i], nums[i-1] के समान है, तो
दोहराता है :=दोहराता है + 1
(दोहराव + 1) / 2
. का वापसी भागफलआइए बेहतर समझ पाने के लिए निम्नलिखित कार्यान्वयन देखें -
उदाहरण
class Solution: def solve(self, nums): repeats = 0 for i in range(1, len(nums)): if nums[i] == nums[i-1]: repeats += 1 return (repeats + 1) // 2 ob = Solution() nums = [1, 1, 2, 3, 3, 3, 4] print(ob.solve(nums))
इनपुट
[1, 1, 2, 3, 3, 3, 4]
आउटपुट
2