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+ 次瀏覽

啟動您的職業生涯

完成課程獲得認證

開始
廣告
© . All rights reserved.