वी टावर से प्रेरित और 2 डी भूलभुलैया माइनस 1 डी से संबंधित है
परिचय
आपका कार्य निर्दिष्ट नियमों का पालन करते हुए एक सरणी भूलभुलैया से बाहर निकलने के लिए सबसे छोटा रास्ता खोजना है।
चुनौती
एक -1 डी सरणी एक साथ n तत्वों से बना एक उलझन के रूप में माना जा सकता है n अंक, जहां सूचकांक के साथ बिंदु कश्मीर के साथ अंक से जुड़ा है कश्मीर + एक [ कश्मीर ] और कश्मीर - एक [ कश्मीर में वन-वे ढंग से]। दूसरे शब्दों में, आप आगे या पीछे वास्तव में कूद कर सकते हैं एक [ कश्मीर सूचकांक के साथ बिंदु से] कदमों कश्मीर । सरणी के सीमा के बाहर एक सूचकांक के साथ अंक भूलभुलैया के बाहर माना जाता है।
इसे समझने के लिए, निम्नलिखित सरणी पर विचार करें,
[0,8,5,9,4,1,1,1,2,1,2]
यदि हम अभी ५ वें तत्व पर हैं, क्योंकि तत्व ४ है, तो हम ९वें तत्व से ४ कदम आगे, या १ तत्व के पीछे ४ कदम आगे बढ़ सकते हैं। यदि हम उत्तरार्द्ध करते हैं, तो हम तत्व 0 के साथ समाप्त होते हैं, जो इंगित करता है कि आगे की चाल संभव नहीं है। यदि हम पूर्व करते हैं, चूंकि 9 वां तत्व 2 है, तो हम 11 वें तत्व की आशा कर सकते हैं, जो फिर से 2 है, और फिर हम फिर से "13 वें तत्व" की आशा कर सकते हैं, जो सीमा से बाहर है। सरणी और भूलभुलैया के लिए एक निकास माना जाता है।
इसलिए यदि हम बीच में तत्व से शुरू करते हैं, भूलभुलैया से बाहर निकलने का एक तरीका 1 कदम पीछे, 4 कदम आगे, 2 कदम आगे और फिर 2 कदम आगे बढ़ रहा है, जिसे सरणी के रूप में व्यक्त किया जा सकता है [-1,4,2,2]
। वैकल्पिक रूप से आप इसे उस सरणी के साथ व्यक्त कर सकते हैं [4,8,10,12]
जो सभी मध्यवर्ती और अंतिम बिंदुओं के शून्य-आधारित सूचकांक को रिकॉर्ड करती है (1-आधारित सूचकांक भी ठीक है), या बस संकेत [-1,1,1,1]
,।
कम-इंडेक्स अंत से भूलभुलैया को बचाना भी ठीक है।
पहले नोटेशन का उपयोग करना और एक ही तत्व से शुरू [1,1,1,2,2]
करना भी एक समाधान है लेकिन यह इष्टतम नहीं है क्योंकि 4 के बजाय 5 चरण हैं।
कार्य सरणी भूलभुलैया से बाहर निकलने और पथ का उत्पादन करने के लिए सबसे छोटा रास्ता खोजना है। यदि एक से अधिक इष्टतम पथ हैं, तो आप किसी भी या सभी को आउटपुट कर सकते हैं। यदि कोई समाधान नहीं है, तो आपको अपने द्वारा चुने गए एक मिथ्या मूल्य का उत्पादन करना चाहिए जो कि एक वैध पथ से निकलता है (बिल्कुल भी उत्पादन नहीं होता है) ठीक है।
सरलता के लिए, सरणी में तत्वों की संख्या हमेशा एक विषम संख्या होती है और हम हमेशा बीच में तत्व से शुरू करते हैं।
परीक्षण के मामलों
परीक्षण के मामले आउटपुट के विभिन्न रूपों को दर्शाते हैं, लेकिन आप इन तक सीमित नहीं हैं।
Input
Output
[0,8,5,9,4,1,1,1,2,1,2]
[-1,4,2,2]
[2,3,7,1,2,0,2,8,9]
[2,9] (or [2,-5] or [[2,9],[2,-5]])
[0,1,2,2,3,4,4,4,3,2,2,3,0]
[1,-1,1,1]
[0,1,2,2,4,4,6,6,6,6,6,4,2,1,2,2,0]
[]
ऐनक
आप एक समारोह या एक पूर्ण कार्यक्रम लिख सकते हैं।
सरणी में केवल nonnegative पूर्णांक होते हैं।
आप किसी भी मानक फॉर्म के माध्यम से इनपुट और आउटपुट ले सकते हैं , लेकिन कृपया अपने उत्तर में निर्दिष्ट करें कि आप किस फॉर्म का उपयोग कर रहे हैं।
यह कोड-गोल्फ है , सबसे कम संख्या में बाइट्स जीतती हैं।
हमेशा की तरह, डिफ़ॉल्ट कमियां यहां लागू होती हैं।
[1,1,1,-1]
बजाय [-1,1,1,1]
?
[0,8,5,9,4,1,1,1,2,1,2]
, आउटपुट[[-1,4,2,2]]
)