একটি পূর্ণসংখ্যার সিকোয়েন্স অ্যারে হিসেবে দেওয়া থাকলে, সেটি থেকে একটির চেয়ে কম এলিমেন্ট মুছে ফেলে কি স্ট্রিক্টলি ইনক্রিজিং সিকোয়েন্স করা সম্ভব তা নির্ণয় করতে হবে।
সিকোয়েন্স a0, a1, ..., an কে স্ট্রিক্টলি ইনক্রিজিং বলা হয় যদি a0 < a1 < ... < an। একক এলিমেন্টવાલা সিকোয়েন্সও স্ট্রিক্টলি ইনক্রিজিং বিবেচিত হয়।
উদাহরণ
sequence = [1, 3, 2, 1] হলে আউটপুট হবে −
almostIncreasingSequence(sequence) = false.
এই অ্যারেতে কোনো একটি এলিমেন্ট মুছে ফেলে স্ট্রিক্টলি ইনক্রিজিং সিকোয়েন্স বানানো সম্ভব নয়।
sequence = [1, 3, 2] হলে আউটপুট হবে −
almostIncreasingSequence(sequence) = true.
আমরা 3 মুছে ফেলে [1, 2] পেতে পারি। অথবা 2 মুছে ফেলে [1, 3] পেতে পারি।
উদাহরণ
নিচে কোডটি দেওয়া হলো −
const arr1 = [3, 5, 67, 98, 3]; const arr2 = [4, 3, 5, 67, 98, 3]; const almostIncreasingSequence = sequence => { let removed = 0; let i = 0; let prev = -Infinity; while(removed < 2 && i < sequence.length) { if(sequence[i] > prev) { prev = sequence[i]; }else{ prev = Math.min(prev, sequence[i]); removed++; } i++; } return removed < 2; }; console.log(almostIncreasingSequence(arr1)); console.log(almostIncreasingSequence(arr2));আউটপুট
কনসোলে নিম্নলিখিত আউটপুট দেখা যাবে −
true false