সমস্যা
একটি সর্টেড ইন্টিজার অ্যারে arr দেওয়া আছে। অ্যারেটিকে ১ বা একাধিক সাবসিকোয়েন্সে ভাগ করা যায় কিনা যাচাই করতে হবে, যেখানে প্রতিটি সাবসিকোয়েন্সে কমপক্ষে ৩টি কনsekutিভ ইন্টিজার থাকবে। সম্ভব হলে true, অন্যথায় false রিটার্ন করবে।
উদাহরণ:
ইনপুট
const arr = [1, 2, 3, 3, 4, 5];
আউটপুট
const output = true;
ব্যাখ্যা
দুটি কনsekutিভ সাবসিকোয়েন্সে ভাগ করা যায়: 1,2,3 এবং 3,4,5।
উদাহরণ কোড
const arr = [1, 2, 3, 3, 4, 5]; const canSplit = (arr = []) => { const count = arr.reduce((acc, num) => { acc[num] = (acc[num] || 0) + 1; return acc; }, {}); const needed = {}; for (const num of arr) { if (count[num] <= 0) continue; count[num] -= 1; if (needed[num] > 0) { needed[num] -= 1; needed[num + 1] = (needed[num + 1] || 0) + 1; } else if (count[num + 1] > 0 && count[num + 2]) { count[num + 1] -= 1; count[num + 2] -= 1; needed[num + 3] = (needed[num + 3] || 0) + 1; } else { return false; } } return true; }; console.log(canSplit(arr));আউটপুট
true