C ++中连续元素排序数组中仅重复元素的计数

给我们一个连续的长度为n的数字数组。该数组只有一个数字,该数字会重复多次。目的是获得元素在数组中重复的次数。或者我们可以说找到数组中重复元素的长度。

我们将遍历数组从i = 0到i <n。如果有任何arr [i] == arr [i + 1]递增计数。最后增加最后一个元素的计数为1。计数将具有重复元素的长度。

让我们通过示例来理解。

输入− arr [] = {0,1,2,3,3,3},N = 6

输出-仅重复元素的计数-3

说明-这里重复3次。

输入− arr [] = {1,2,3,4,4,4,4,4,5,6},N = 10

输出-仅重复元素的计数-5

说明-这里重复4次5次。

以下程序中使用的方法如下

  • 我们采用整数数组arr [],该数组用连续的数字初始化,其中重复一个数字。

  • 变量len存储数组的长度。

  • 函数findRepeat(int arr [],int n)将一个数组及其长度作为输入,并显示重复元素的值和重复元素的长度。

  • 将初始计数设为0。

  • 从索引i = 0到i <n。如果arr [i] == arr [i + 1]。增量计数。将元素存储在变量值中。

  • 在循环结束时,最后一个元素的计数为1。

  • 作为值重复的显示元素。

  • 将重复次数显示为计数。

示例

#include <bits/stdc++.h>
using namespace std;
void findRepeat(int arr[],int n){
   int count=0; //count of repeated element
   int value=0; //to store repeated element
   for(int i=0;i<n;i++){
      if(arr[i]==arr[i+1]){
         count++;
         value=arr[i];
      }
   }
   count++; //for last element
   cout<<"Repeated Element: "<<value;
   cout<<endl<<"Number of occurrences: "<<count;
}
int main(){
   int Arr[]={ 2,3,4,5,5,5,6,7,8 };
   int len=sizeof(Arr)/sizeof(Arr[0]);
   findRepeat(Arr,len);
   return 0;
}

输出结果

如果我们运行上面的代码,它将生成以下输出-

Repeated Element: 5
Number of occurrences: 3