परिचय
मान लीजिए कि आप संख्याओं की सूची की टेल मैक्सिमा की गणना करना चाहते हैं, यानी प्रत्येक गैर-रिक्त प्रत्यय की अधिकतम संख्या। ऐसा करने का एक तरीका यह है कि एक नंबर को बार-बार चुनना और उसके बाद होने वाली एक उच्च संख्या द्वारा प्रतिस्थापित करना, जब तक कि यह संभव नहीं हो। इस चुनौती में, आपका कार्य इस एल्गोरिथम का एक चरण करना है।
काम
आपका इनपुट पूर्णांक L की एक सूची है , जो खाली हो सकती है। आपका आउटपुट सूची होगी एल जहां ठीक एक नंबर एल मैं एक और ने ले लिया है एल जे , जहां एल मैं <एल जे और मैं <j ।
दूसरे शब्दों में, आप एक संख्या को उसके बाद होने वाली उच्च संख्या से बदल देंगे।
आप सभी वैध जोड़े में से स्वतंत्र रूप से i और j चुन सकते हैं , और पसंद nondeterministic हो सकती है।
अगर ऐसा i और j मौजूद नहीं है (यानी L गैर-बढ़ता है), तो आपका आउटपुट L अपरिवर्तित रहेगा ।
उदाहरण
इनपुट एल = [3, 1, 4, -1, 2] पर विचार करें । संभव आपरेशनों को बदलने के लिए कर रहे हैं 3 से 4 , की जगह 1 से 4 , की जगह 1 से 2 , या बदलने -1 से 2 । इस प्रकार संभावित आउटपुट निम्न हैं:
[ 3 , 1 , 4 , -1 , 2 ]
------------------------------
[( 4), 1 ,( 4), -1 , 2 ]
[ 3 ,( 4),( 4), -1 , 2 ]
[ 3 ,( 2), 4 , -1 ,( 2)]
[ 3 , 1 , 4 ,( 2),( 2)]
यदि आप ऑपरेशन को पर्याप्त बार दोहराते हैं, तो अंतिम परिणाम [4,4,4,2,2] होगा , जो कि एल की पूंछ मैक्सिमा की सूची में ठीक है ।
नियम और स्कोरिंग
आप एक पूर्ण कार्यक्रम या एक फ़ंक्शन लिख सकते हैं। बाद के मामले में, आप एक नई सरणी वापस करने के बजाय इनपुट को संशोधित कर सकते हैं, अगर आपकी भाषा इसकी अनुमति देती है। इनपुट और आउटपुट प्रारूप कारण के भीतर लचीले हैं।
सबसे कम बाइट गिनती जीतती है।
परीक्षण के मामलों
सभी संभावित आउटपुट दिखाए जाते हैं।
[] -> []
[1] -> [1]
[1,2] -> [2,2]
[2,1] -> [2,1]
[4,4,4,4] -> [4,4,4,4]
[-1,-3,-10] -> [-1,-3,-10]
[1,3,10] -> [3,3,10] [10,3,10] [1,10,10]
[1,1,2,1] -> [2,1,2,1] [1,2,2,1]
[998,64,2,-94,-789] -> [998,64,2,-94,-789]
[998,2,64,-94,-789] -> [998,64,64,-94,-789]
[3,1,4,-1,2] -> [4,1,4,-1,2] [3,4,4,-1,2] [3,2,4,-1,2] [3,1,4,2,2]
[-1,4,0,4,7,2,3] -> [4,4,0,4,7,2,3] [0,4,0,4,7,2,3] [-1,4,4,4,7,2,3] [7,4,0,4,7,2,3] [-1,7,0,4,7,2,3] [-1,4,7,4,7,2,3] [-1,4,0,7,7,2,3] [2,4,0,4,7,2,3] [-1,4,2,4,7,2,3] [3,4,0,4,7,2,3] [-1,4,3,4,7,2,3] [-1,4,0,4,7,3,3]
[3542,-12311,7662,1672,6081] -> [7662,-12311,7662,1672,6081] [3542,7662,7662,1672,6081] [3542,1672,7662,1672,6081] [6081,-12311,7662,1672,6081] [3542,6081,7662,1672,6081] [3542,-12311,7662,6081,6081]
x=>x.map(c=>c<x[++i]&!d?x[d=i]:c,d=i=0)?