ভূমিকা
মনে করুন আপনি সংখ্যার তালিকার টেল ম্যাক্সিমাকে গণনা করতে চান, অর্থাত প্রতিটি নোম্পটি প্রত্যয়ের সর্বাধিক। এটি করার একটি উপায় হ'ল বারবার একটি নম্বর চয়ন করা এবং এর পরে সংঘটিত উচ্চতর সংখ্যার দ্বারা প্রতিস্থাপন করা, যতক্ষণ না এটি আর সম্ভব না হয়। এই চ্যালেঞ্জে আপনার কাজটি এই অ্যালগরিদমের এক ধাপ সম্পাদন করা।
কাজটি
আপনার ইনপুটটি পূর্ণসংখ্যার 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)
?