कार्य
गैर-नकारात्मक पूर्णांक की एक सरणी को देखते हुए, सरणी को a
"बाहर" कूदने के लिए आवश्यक न्यूनतम कूदता की न्यूनतम संख्या निर्धारित करें, स्थिति 0 पर शुरू, या शून्य / शून्य पर लौटें यदि ऐसा करना संभव नहीं है।
एक कूद इंडेक्स से i
ज्यादा से ज्यादा से सरणी सूचकांक में वृद्धि होने के लिए परिभाषित किया गया हैa[i]
।
एक कूद के बाहर एक कूद जहां सूचकांक कूद से उत्पन्न है i
तो 1 आधारित अनुक्रमण के लिए, बाहर के सीमा सरणी के लिए है i>length(a)
, और 0 के आधार पर अनुक्रमण के लिए, i>=length(a)
।
उदाहरण 1
विचार करें Array = [4,0,2,0,2,0]
:
Array[0] = 4 -> You can jump 4 field
Array[1] = 0 -> You can jump 0 field
Array[2] = 2 -> You can jump 2 field
Array[3] = 0 -> You can jump 0 field
Array[4] = 2 -> You can jump 2 field
Array[5] = 0 -> You can jump 0 field
"कूदने" के लिए सबसे छोटे रास्ते से बाहर जाने की सीमा है 2
:
हम कूद सकते हैं 0->2->4->outside
जिसमें लंबाई है 3
लेकिन 0->4->outside
लंबाई है 2
इसलिए हम वापस लौट आए2
।
उदाहरण 2
मान लीजिए Array=[0,1,2,3,2,1]
:
Array[0] = 0 -> You can jump 0 fields
Array[1] = 1 -> You can jump 1 field
Array[2] = 2 -> You can jump 2 field
Array[3] = 3 -> You can jump 3 field
Array[4] = 2 -> You can jump 2 field
Array[5] = 1 -> You can jump 1 field
इस स्थिति में, सरणी के बाहर कूदना असंभव है, इसलिए हमें एक शून्य / शून्य या किसी भी गैर नियतात्मक मान को वापस करना चाहिए ∞
।
उदाहरण 3
मान लीजिए Array=[4]
:
Array[0] = 4 -> You can jump 4 field
हम सीधे केवल एक छलांग के साथ, सरणी के बाहर सूचकांक 0 से कूद सकते हैं, इसलिए हम वापस लौटते हैं 1
।
संपादित करें:
रिटर्न वैल्यू के बारे में कई सवालों के कारण: रिटर्निंग ∞
पूरी तरह से वैध है, अगर बचने का कोई मौका नहीं है। क्योंकि, यदि कोई मौका है, तो हम उस संख्या को परिभाषित कर सकते हैं।
यह कोड-गोल्फ है , इसलिए बाइट्स में सबसे छोटा कोड जीत जाता है!
[2, 3, 1, 1]
।