चलो संख्याओं की एक सरणी को कुचलने की प्रक्रिया को परिभाषित करते हैं। एक क्रश में हमने दायें से बायें सरणी को पढ़ा। अगर एक बिंदु पर हम एक ही तत्व के दो का सामना करते हैं तो हम पहले एक को हटाते हैं और दूसरे को दोगुना करते हैं। उदाहरण के लिए यहाँ निम्नलिखित सरणी को कुचलने की प्रक्रिया है
[5,2,2,3]
^
[5,2,2,3]
^
[5,2,2,3]
^
[5,4,3]
^
[5,4,3]
^
एक ही तत्व, कई बार ध्वस्त हो जा सकती है, उदाहरण के लिए [1,1,2]
हो जाता है[4]
जब कुचला ।
जब हम उस सरणी को कुचलने की प्रक्रिया को नहीं बदलते हैं, तो हम किसी सरणी को अनचाहे कहेंगे। उदाहरण के लिए [1,2,3]
अभी भी है[1,2,3]
कुचले जाने के बाद ।
आपका काम एक सरणी लेना है और इसे अनचाहे बनाने के लिए आवश्यक क्रशों की संख्या निर्धारित करना है। आपको केवल 0 से 2 32 की सीमा पर पूर्णांक का समर्थन करने की आवश्यकता है -1
यह कोड-गोल्फ है इसलिए उत्तर बाइट में कम बाइट के साथ बेहतर स्कोर किए जाएंगे।
परीक्षण के मामलों
[1] -> 0
[1,1] -> 1
[2,1,1] -> 2
[4,2,1,1] -> 3
[2,2,2,1,1] -> 3
[0,0,0,0] -> 1
[4,0,0,0,4] -> 1
[4,0,0,0,0,4] -> 1
[] -> 0
0,0,0,0
केवल क्यों था 1
। यह स्पष्ट रूप से कहीं उल्लेख करने के लिए एक विचार हो सकता है कि हम एक सरणी के माध्यम से लूप की संख्या की गिनती कर रहे हैं जिसे पूरी तरह से कुचलने के लिए हमें लूप करना है और नहीं , जैसा कि मैंने शुरू में सोचा था, कुल बार हम 2 नंबरों को एक साथ क्रश करते हैं।
[1,1,2,4,8]
1 या 4 वापस करना चाहिए ?