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


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

我们将遍历数组,从i=0到i<n。如果任何arr[i]==arr[i+1],则计数加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。将元素存储在变量value中。

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

  • 显示重复出现的元素为value。

  • 显示重复次数为count。

示例

 在线演示

#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

更新于:2020年8月31日

5K+ 次浏览

启动您的职业生涯

完成课程获得认证

开始
广告