Computer >> Máy Tính >  >> Lập trình >> C ++

Số phần tử lặp lại duy nhất trong một mảng được sắp xếp gồm các phần tử liên tiếp trong C ++


Chúng ta được cung cấp một mảng các số liên tiếp có độ dài n. Mảng chỉ có một số được lặp lại nhiều lần. Mục đích là lấy số lần phần tử đó được lặp lại trong mảng. Hoặc chúng ta có thể nói tìm độ dài của một phần tử lặp lại trong mảng.

Chúng ta sẽ duyệt qua mảng từ i =0 đến i

Hãy cùng hiểu với các ví dụ.

Đầu vào - arr [] ={0,1,2,3,3,3}, N =6

Đầu ra - Số phần tử lặp lại duy nhất - 3

Giải thích - 3 được lặp lại ba lần ở đây.

Đầu vào - arr [] ={1,2,3,4,4,4,4,4,5,6}, N =10

Đầu ra - Số phần tử lặp lại duy nhất - 5

Giải thích - 4 được lặp lại 5 lần ở đây.

Phương pháp tiếp cận được sử dụng trong chương trình dưới đây như sau

  • Chúng tôi lấy một mảng số nguyên arr [] được khởi tạo với các số liên tiếp trong đó một số được lặp lại.

  • Biến len lưu trữ độ dài của mảng.

  • Hàm findRepeat (int arr [], int n) nhận một mảng và độ dài của nó làm đầu vào và hiển thị giá trị phần tử lặp lại và độ dài của các phần tử lặp lại.

  • Lấy số lượng ban đầu là 0.

  • Bắt đầu từ chỉ số i =0 đến i

  • Ở cuối vòng lặp, đếm số gia tăng 1 cho phần tử cuối cùng.

  • Phần tử hiển thị được lặp lại dưới dạng giá trị.

  • Hiển thị số lần lặp lại dưới dạng đếm.

Ví dụ

#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;
}

Đầu ra

Nếu chúng ta chạy đoạn mã trên, nó sẽ tạo ra kết quả sau -

Repeated Element: 5
Number of occurrences: 3