Minimum number of consecutive sequences that can be formed in an array
Given an array of integers. The task is to find the minimum number of consecutive sequences that can be formed using the elements of the array.
Examples:
Input: arr[] = { -3, -2, -1, 0, 2 }
Output: 2
Consecutive sequences are (-3, -2, -1, 0), (2).
Input: arr[] = { 3, 4, 0, 2, 6, 5, 10 }
Output: 3
Consecutive sequences are (0), {2, 3, 4, 5, 6} and {10}
Approach:
- Sort the array.
- Iterate the array, and check if current element is just 1 smaller than the next element.
- If it is then increment the count by 1.
- Return the final count of consecutive sequences.
Below is the implementation of above approach :
C++
#include <bits/stdc++.h>
using namespace std;
int countSequences( int arr[], int n)
{
int count = 1;
sort(arr, arr + n);
for ( int i = 0; i < n - 1; i++)
if (arr[i] + 1 != arr[i + 1])
count++;
return count;
}
int main()
{
int arr[] = { 1, 7, 3, 5, 10 };
int n = sizeof (arr) / sizeof (arr[0]);
cout << countSequences(arr, n);
return 0;
}
|
Java
import java.util.Arrays;
import java.io.*;
class GFG {
static int countSequences( int arr[], int n)
{
int count = 1 ;
Arrays.sort(arr);
for ( int i = 0 ; i < n - 1 ; i++)
if (arr[i] + 1 != arr[i + 1 ])
count++;
return count;
}
public static void main (String[] args) {
int arr[] = { 1 , 7 , 3 , 5 , 10 };
int n = arr.length;
System.out.println( countSequences(arr, n));
}
}
|
Python3
def countSequences(arr, n) :
count = 1
arr.sort()
for i in range ( n - 1 ) :
if (arr[i] + 1 ! = arr[i + 1 ]) :
count + = 1
return count
if __name__ = = "__main__" :
arr = [ 1 , 7 , 3 , 5 , 10 ]
n = len (arr)
print (countSequences(arr, n))
|
C#
using System;
class GFG {
static int countSequences( int []arr, int n)
{
int count = 1;
Array.Sort(arr);
for ( int i = 0; i < n - 1; i++)
if (arr[i] + 1 != arr[i + 1])
count++;
return count;
}
static public void Main (String []args) {
int []arr = { 1, 7, 3, 5, 10 };
int n = arr.Length;
Console.WriteLine( countSequences(arr, n));
}
}
|
PHP
<?php
function countSequences( $arr , $n )
{
$count = 1;
sort( $arr );
for ( $i = 0; $i < $n - 1; $i ++)
if ( $arr [ $i ] + 1 != $arr [ $i + 1])
$count ++;
return $count ;
}
$arr = array ( 1, 7, 3, 5, 10 );
$n = count ( $arr );
echo countSequences( $arr , $n );
?>
|
Javascript
<script>
function countSequences(arr, n)
{
let count = 1;
arr.sort( function (a, b){ return a - b});
for (let i = 0; i < n - 1; i++)
if (arr[i] + 1 != arr[i + 1])
count++;
return count;
}
let arr = [ 1, 7, 3, 5, 10 ];
let n = arr.length;
document.write(countSequences(arr, n));
</script>
|
Time Complexity: O(n log n), where n is the size of the array.
Auxiliary Space: O(1)
Last Updated :
24 Jun, 2022
Like Article
Save Article
Share your thoughts in the comments
Please Login to comment...