সমস্যা
আমাদের একটি জাভাস্ক্রিপ্ট ফাংশন লিখতে হবে যা একটি সংখ্যার অ্যারে arr প্রথম ও একমাত্র আর্গুমেন্ট হিসেবে নেবে।
ফাংশনটির কাজ হল একটি সatinaর সাবঅ্যারে খুঁজে বের করা যাতে যদি আমরা শুধু সেই সাবঅ্যারেটিকে উর্ধ্বক্রমে সর্ট করি, তবে পুরো অ্যারেটিও উর্ধ্বক্রমে সর্টেড হয়ে যায়।
উদাহরণস্বরূপ, যদি ইনপুট হয় –
const arr = [3, 7, 5, 9, 11, 10, 16];
তবে আউটপুট হওয়া উচিত –
const output = 5;
আউটপুট ব্যাখ্যা
কারণ যদি আমরা [7, 5, 9, 11, 10] সর্ট করি, তবে পুরো অ্যারেটি সর্টেড হয়ে যাবে।
উদাহরণ
নিচে কোডটি দেওয়া হল –
const arr = [3, 7, 5, 9, 11, 10, 16];
const shortestLength = (arr = []) => {
const sorted = [...arr].sort((a, b) => a - b);
let start = 0;
let end = sorted.length - 1;
while (sorted[start] === arr[start] && start < arr.length) {
start += 1;
}
while (sorted[end] === arr[end] && end >= 0) {
end -= 1;
}
return end >= start ? end - start + 1 : 0;
};
console.log(shortestLength(arr));
আউটপুট
কনসোল আউটপুট –
5