Check if all duplicate elements in the Array are adjacent or not - GeeksforGeeks

09 Feb, 2022
Given an array arr[]. The task is to check whether duplicate elements in arr[] are contiguous or not. 
Examples
Input: arr[] = {1, 2, 3, 4, 5, 6}Output: YesExplanation: There is no duplicate element in arr[] so there is no need to check anything and answer is Yes. 
Input: arr[] = {1, 2, 2, 4}Output: YesExplanation: 2 is occurring 2 times and it is contiguous. Hence, answer is Yes. 
Input: arr[] = {1, 2, 3, 2, 4}Output: NoExplanation: There is a gap between 2’s and 3 is between two 2’s. Therefore, the answer is No. 
Approach: This problem can be solved by using HashMaps. Follow the steps below to solve the given problem. 
Use maps to store the visited elements.
First, mark the first element on the map.
Traverse the array arr[] from 1 to N-1. where N is the size of arr[].
If the current element matches the previous element means there is a cycle of one element repeating so simply continue the loop.
If the current element is already marked in the map return “No”.
Mark the current element in the map.
If the function reaches here means there are all contiguous elements so return “Yes”.
Below is the implementation of the above approach. 
C++14
Java
Python3
C#
Javascript
// C++ program for the above approach#include <bits/stdc++.h>using namespace std; // Function to check whether duplicate// elements in array arr[] are contiguous or notstring checkContiguous(int* arr, int& n){    int i;     // Map to keep track of elements    unordered_map<int, bool> visited;     visited.clear();    visited.insert({ arr[0], 1 });     for (i = 1; i < n; i++) {        if (arr[i] == arr[i - 1])            continue;        else if (visited[arr[i]])            return "No";        visited[arr[i]] = 1;    }     return "Yes";} // Driver Codeint main(){    int arr[] = { 2, 4, 5, 5, 3, 5 };    int N = sizeof(arr) / sizeof(arr[0]);     // Function Call    cout << checkContiguous(arr, N);     return 0;}
// Java code for the above approachimport java.io.*; class GFG {   // Function to check whether duplicate  // elements in array arr[] are contiguous or not  static String checkContiguous(int[] arr, int n)  {    int i;     // Map to keep track of elements    int[] visited = new int[n];     for (i = 1; i < n; i++) {      if (arr[i] == arr[i - 1])        continue;      else if (visited[arr[i]] == 0)        return "No";      visited[arr[i]] = 1;    }     return "Yes";  }   // Driver Code  public static void main(String[] args)  {     int arr[] = { 2, 4, 5, 5, 3, 5 };    int N = arr.length;     // Function Call    System.out.println(checkContiguous(arr, N));  }} // This code is contributed by Potta Lokesh
# Python program for the above approach # Function to check whether duplicate# elements in array arr[] are contiguous or notdef checkContiguous  (arr, n):    i = None     # Map to keep track of elements    visited = [0] * n;      for i in range(1, n):        if (arr[i] == arr[i - 1]):            continue;        elif (visited[arr[i]] == 0):            return "No";        visited[arr[i]] = 1;          return "Yes";  # Driver Code arr = [2, 4, 5, 5, 3, 5];N = len(arr) # Function Callprint(checkContiguous(arr, N)); # This code is contributed by Saurabh Jaiswal
// C# code for the above approachusing System;class GFG {   // Function to check whether duplicate  // elements in array arr[] are contiguous or not  static String checkContiguous(int[] arr, int n)  {    int i;     // Map to keep track of elements    int[] visited = new int[n];     for (i = 1; i < n; i++) {      if (arr[i] == arr[i - 1])        continue;      else if (visited[arr[i]] == 0)        return "No";      visited[arr[i]] = 1;    }     return "Yes";  }   // Driver Code  public static void Main()  {     int[] arr = { 2, 4, 5, 5, 3, 5 };    int N = arr.Length;     // Function Call    Console.WriteLine(checkContiguous(arr, N));  }} // This code is contributed by ukasp.
<script>    // JavaScript program for the above approach     // Function to check whether duplicate    // elements in array arr[] are contiguous or not    const checkContiguous = (arr, n) => {        let i;         // Map to keep track of elements        let visited = {};         visited[arr[0]] = 1;         for (i = 1; i < n; i++) {            if (arr[i] == arr[i - 1])                continue;            else if (visited[arr[i]])                return "No";            visited[arr[i]] = 1;        }         return "Yes";    }     // Driver Code     let arr = [2, 4, 5, 5, 3, 5];    let N = arr.length;     // Function Call    document.write(checkContiguous(arr, N)); // This code is contributed by rakeshsahni </script>
No
Time Complexity: O(N) Auxiliary Space: O(N)
rakeshsahni
lokeshpotta20
_saurabh_jaiswal
ukasp
simranarora5sos
surinderdawra388
simmytarika5
Algo-Geek 2021
Algo Geek
Arrays
Arrays
Writing code in comment?
Please use ide.geeksforgeeks.org,
generate link and share the link here.
Check if the given string is valid English word or not
Sort strings on the basis of their numeric part
Divide given number into two even parts
Smallest set of vertices to visit all nodes of the given Graph
Count of Palindrome Strings in given Array of strings
Arrays in Java
Arrays in C/C++
Maximum and minimum of an array using minimum number of comparisons
Write a program to reverse an array or string
Program for array rotation