Computer >> คอมพิวเตอร์ >  >> การเขียนโปรแกรม >> C++

นับเฉพาะองค์ประกอบที่ซ้ำกันในอาร์เรย์ที่เรียงลำดับขององค์ประกอบที่ต่อเนื่องกันใน C++


เราได้รับอาร์เรย์ของจำนวนที่ต่อเนื่องกันของความยาว n อาร์เรย์มีตัวเลขเพียงตัวเดียวซึ่งซ้ำกันมากกว่าหนึ่งครั้ง เป้าหมายคือการได้รับจำนวนครั้งที่องค์ประกอบซ้ำในอาร์เรย์ หรือเราสามารถพูดได้ว่า จงหาความยาวขององค์ประกอบที่ซ้ำกันในอาร์เรย์

เราจะสำรวจอาร์เรย์จาก i=0 ไปยัง i

มาทำความเข้าใจกับตัวอย่างกัน

ป้อนข้อมูล − 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[] ที่เริ่มต้นด้วยตัวเลขต่อเนื่องกันซึ่งมีการทำซ้ำตัวเลขหนึ่งตัว

  • เลนตัวแปรเก็บความยาวของอาร์เรย์

  • ฟังก์ชัน findRepeat(int arr[],int n) รับอาร์เรย์และความยาวเป็นอินพุตและแสดงค่าองค์ประกอบที่ซ้ำกันและความยาวขององค์ประกอบที่ซ้ำกัน

  • นับเริ่มต้นเป็น 0

  • เริ่มจากดัชนี i=0 ถึง i

  • ที่ส่วนท้ายของการเพิ่มลูปให้นับ 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