चुनौती
पूर्णांक के गैर-खाली सरणी को देखते हुए, उदाहरण के लिए:
[5, 2, 7, 6, 4, 1, 3]
पहले इसे उन सरणियों में बदल दें जहां कोई भी वस्तु पिछले (यानी गैर-आरोही सरणियों) से बड़ी नहीं है:
[5, 2] [7, 6, 4, 1] [3]
अगला, प्रत्येक सरणी को उल्टा करें:
[2, 5] [1, 4, 6, 7] [3]
अंत में, उन सभी को एक साथ सम्मिलित करें:
[2, 5, 1, 4, 6, 7, 3]
यह वही होना चाहिए जो आपका प्रोग्राम आउटपुट / फ़ंक्शन रिटर्न देता है। इस प्रक्रिया को पर्याप्त बार दोहराएं और सरणी पूरी तरह से हल हो जाएगी।
नियम
- इनपुट और आउटपुट किसी भी मानक तरीकों के माध्यम से दिए जा सकते हैं, और किसी भी उचित सरणी प्रारूप में हो सकते हैं।
- इनपुट सरणी कभी खाली नहीं होगी, लेकिन इसमें नकारात्मक और / या डुप्लिकेट हो सकते हैं।
- प्रत्येक पूर्णांक का पूर्ण मान हमेशा 2 31 से कम होगा ।
परीक्षण के मामलों
उम्मीद है कि इन सभी मामलों को कवर किया जाएगा:
[1] -> [1]
[1, 1] -> [1, 1]
[1, 2] -> [1, 2]
[2, 1] -> [1, 2]
[2, 3, 1] -> [2, 1, 3]
[2, 1, 3] -> [1, 2, 3]
[2, 1, 2] -> [1, 2, 2]
[2, 1, 1] -> [1, 1, 2]
[3, 1, 1, 2] -> [1, 1, 3, 2]
[3, 2, 1, 2] -> [1, 2, 3, 2]
[3, 1, 2, 2] -> [1, 3, 2, 2]
[1, 3, 2, 2] -> [1, 2, 2, 3]
[1, 0, 5, -234] -> [0, 1, -234, 5]
[1, 0, 1, 0, 1] -> [0, 1, 0, 1, 1]
[1, 2, 3, 4, 5] -> [1, 2, 3, 4, 5]
[5, 4, 3, 2, 1] -> [1, 2, 3, 4, 5]
[2, 1, 5, 4, 3] -> [1, 2, 3, 4, 5]
[2, 3, 1, 5, 4] -> [2, 1, 3, 4, 5]
[5, 1, 4, 2, 3] -> [1, 5, 2, 4, 3]
[5, 2, 7, 6, 4, 1, 3] -> [2, 5, 1, 4, 6, 7, 3]
[-5, -2, -7, -6, -4, -1, -3] -> [-5, -7, -2, -6, -4, -3, -1]
[14, 5, 3, 8, 15, 7, 4, 19, 12, 0, 2, 18, 6, 11, 13, 1, 17, 16, 10, 9] -> [3, 5, 14, 8, 4, 7, 15, 0, 12, 19, 2, 6, 18, 11, 1, 13, 9, 10, 16, 17]
स्कोरिंग
यह कोड-गोल्फ है , इसलिए बाइट्स में सबसे छोटा कोड जीत जाता है।
O(n^2)
O(n)
। पहले और आखिरी तत्वों की अदला-बदली करें और फिर बीच के पड़ाव पर पहुंचने पर दूसरे और दूसरे आखिरी तत्वों आदि को स्वैप करें।
O(n)
रिवर्स करना है , लेकिन रिवर्स को एल्गोरिथ्म में बनाया जा सकता है (यही मेरा जेएस उत्तर करता है); चूंकि प्रत्येक पुनरावृति सरणी में प्रत्येक आइटम पर एक बार लूप करता है, एक एकल पुनरावृत्ति है O(n)
। (मुझे लगता है ...)