কঠোরভাবে ক্রমবর্ধমান
একটি ক্রম কঠোরভাবে বাড়ছে৷ যদি এবং শুধুমাত্র যদি arr[0]
সমস্যা
আমাদের একটি জাভাস্ক্রিপ্ট ফাংশন লিখতে হবে যা সংখ্যার দুটি অ্যারে নেয়, যথাক্রমে প্রথম এবং দ্বিতীয় আর্গুমেন্ট হিসাবে arr1 এবং arr2।
আমরা arr1 থেকে arr2 এ যেকোন সংখ্যক উপাদান অদলবদল করতে পারি, যেগুলো একই সূচকে বাস করে। এর মানে আমরা arr1[i] কে arr2[i] দিয়ে অদলবদল করতে পারি। উভয় ক্রম কঠোরভাবে বৃদ্ধি করতে আমাদের ফাংশনটি সর্বনিম্ন সংখ্যক অদলবদল ফেরত দেবে৷
উদাহরণস্বরূপ, যদি ফাংশনে ইনপুট হয়
ইনপুট
const arr1 = [1, 3, 5, 4]; const arr2 = [1, 2, 3, 7];
আউটপুট
const output = 1;
আউটপুট ব্যাখ্যা
কারণ যদি আমরা arr2[3] এর সাথে arr1[3] অদলবদল করি, উভয় অ্যারেই কঠোরভাবে বৃদ্ধি পাবে।
উদাহরণ
নিম্নলিখিত কোড -
const arr1 = [1, 3, 5, 4]; const arr2 = [1, 2, 3, 7]; const findSwaps = (arr1 = [], arr2 = []) => { let map = { true: 1, false: 0, }; for (let i = 1; i < arr1.length; i++) { const current = { true: Infinity, false: Infinity, } if (arr1[i] > arr2[i - 1] && arr2[i] > arr1[i - 1]) { current.true = Math.min( current.true, map.false + 1, ) current.false = Math.min( current.false, map.true) } if (arr2[i] > arr2[i - 1] && arr1[i] > arr1[i - 1]) { current.true = Math.min( current.true, map.true + 1, ) current.false = Math.min( current.false, map.false) } map = current } return Math.min( map.false, map.true) } console.log(findSwaps(arr1, arr2));
আউটপুট
1