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

องค์ประกอบอาร์เรย์ที่ปรากฏมากกว่าหนึ่งครั้ง?


ที่นี่เราจะเห็นปัญหาหนึ่ง เรามีหนึ่งอาร์เรย์ งานของเราคือค้นหาองค์ประกอบเหล่านั้นที่มีความถี่มากกว่า 1 สมมติว่าองค์ประกอบคือ {1, 5, 2, 5, 3, 1, 5, 2, 7} ที่นี่ 1 เกิดขึ้น 2 ครั้ง 5 ครั้งเกิดขึ้น 3 ครั้งและ 2 ครั้งเกิดขึ้นสามครั้ง อื่นๆ เกิดขึ้นเพียงครั้งเดียว ดังนั้นผลลัพธ์จะเป็น {1, 5, 2}

อัลกอริทึม

ความถี่มากขึ้น(arr, n)

เริ่มกำหนด map ด้วยคีย์ประเภท int และค่าประเภท int สำหรับแต่ละองค์ประกอบ e ใน arr เพิ่ม map.key(arr).value สำหรับแต่ละคีย์ตรวจสอบว่าค่ามากกว่า 1 หรือไม่ จากนั้นพิมพ์ keyEnd 

ตัวอย่าง

#include #include 
ใช้เนมสเปซ std;void moreFreq(int arr[], int n){ map freq_map; สำหรับ(int i =0; isecond> 1) cout <first <<"; }}int main() { int arr[] ={1, 5, 2, 5, 3, 1, 5, 2, 7}; int n =sizeof(arr)/sizeof(arr[0]); cout <<"ความถี่มากกว่าหนึ่ง:"; moreFreq(arr, n);}

ผลลัพธ์

ความถี่มากกว่าหนึ่ง:1 2 5