Given a binary array arr of 1’s and 0’s of length N. The task is to find the number of elements which are different with respect to their neighbors.
Note:At least one of the neighbors should be distinct.
Input : N = 4 , arr=[1, 0, 1, 1]
Output : 3
arr=1 is distinct since it’s neighbor arr=0 is different.
arr=0 is also distinct, as it has two different neighbors i.e, arr=1 & arr=1.
arr=1 has same neighbor in arr=1 but has different neighbor in arr=0. So it’s distinct.
But arr=1 is not distinct as it’s neighbor arr=1 is the same.
So total distinct elements are 1+1+1+0=3
Input : N = 2 , arr=[1, 1]
Output : 0
- Run a loop for all the elements of list and compare every element with its previous and next neighbors. Increment count by 1 if the element is distinct.
- The first element has to be compared only with its next neighbor and similarly the last element has to be compared only with its previous element.
- The remaining elements have two neighbors . If anyone of two neighbors is different then it is considered distinct.
Below is the implementation of the above approach:
Time Complexity: O(N)
- Distinct adjacent elements in an array
- Maximum set bit sum in array without considering adjacent elements
- Maximum sum in circular array such that no two elements are adjacent
- Search an element in an array where difference between adjacent elements is 1
- Minimum adjacent swaps required to Sort Binary array
- Count distinct elements in an array
- Check if all array elements are distinct
- Minimum absolute difference of adjacent elements in a circular array
- Find sum of non-repeating (distinct) elements in an array
- Print sorted distinct elements of array
- Print All Distinct Elements of a given integer array
- Product of non-repeating (distinct) elements in an Array
- Third largest element in an array of distinct elements
- Minimum operations required to modify the array such that parity of adjacent elements is different
- Find minimum changes required in an array for it to contain k distinct elements
If you like GeeksforGeeks and would like to contribute, you can also write an article using contribute.geeksforgeeks.org or mail your article to email@example.com. See your article appearing on the GeeksforGeeks main page and help other Geeks.
Please Improve this article if you find anything incorrect by clicking on the "Improve Article" button below.