আমাদের একটি পজিটিভ ইন্টিজার অ্যারে দেওয়া আছে। লক্ষ্য হলো সিকোয়েন্স আকারে সর্বোচ্চ কতগুলো কনsekutিভ সংখ্যা (প্রতিটি পরেরটির সাথে পার্থক্য ১) আছে তা বের করা।
প্রথমে অ্যারে সর্ট করা। তারপর সংলগ্ন এলিমেন্ট arr[j] == arr[i]+1 (j=i+1) চেক করে কাউন্ট বাড়ানো। ভাঙলে কাউন্ট রিসেট। ম্যাক্স কাউন্ট ট্র্যাক করা।
ইনপুট
Arr[]= { 100,21,24,73,22,23 }
আউটপুট
Maximum consecutive numbers in array : 4
ব্যাখ্যা: সর্টেড: {21,22,23,24,73,100}। ২১,২২,২৩,২৪ - ৪টি কনsekutিভ।
ইনপুট
Arr[]= { 11,41,21,42,61,43,9,44 }
আউটপুট
Maximum consecutive numbers in array : 4
ব্যাখ্যা: সর্টেড: {9,11,21,41,42,43,44,61}। ৪১,৪২,৪৩,৪৪ - ৪টি কনsekutিভ।
প্রোগ্রামে ব্যবহৃত পদ্ধতি
- subs(int arr[], int n) ফাংশন।
- sort(arr, arr+n)।
- count=1, maxc=1।
- নেস্টেড লুপ i=0 to n-2, j=i+1 to n-1: arr[j]==arr[i]+1 হলে count++, i++। নাহলে count=1। maxc আপডেট।
- maxc রিটার্ন।
উদাহরণ কোড
#include <iostream>
#include <algorithm>
using namespace std;
int subs(int arr[], int n){
sort(arr, arr+n);
int count = 1, maxc = 1;
for(int i=0; i
আউটপুট
Maximum consecutive numbers present in an array : 10