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

Các phần tử của mảng xuất hiện nhiều hơn một lần?

Ở đây chúng ta sẽ thấy một vấn đề. Chúng tôi có một mảng. nhiệm vụ của chúng ta là tìm những phần tử có tần số lớn hơn 1. Giả sử các phần tử là {1, 5, 2, 5, 3, 1, 5, 2, 7}. Ở đây 1 đã xảy ra 2 lần, 5 đã xảy ra 3 lần và 2 đã xảy ra ba lần, những người khác chỉ xảy ra một lần. Vì vậy, đầu ra sẽ là {1, 5, 2}

Thuật toán

moreFreq (arr, n)

 Bắt đầu xác định bản đồ với khóa kiểu int và giá trị kiểu int cho mỗi phần tử e trong arr, thực hiện tăng map.key (arr) .value được thực hiện cho mỗi khóa kiểm tra xem giá trị có lớn hơn 1 không, sau đó in keyEnd  

Ví dụ

 #include  #include 
 using namespace std; void moreFreq (int arr [], int n) {map  freq_map; for (int i =0; i  second> 1) cout < first <<""; }} int main () {int arr [] ={1, 5, 2, 5, 3, 1, 5, 2, 7}; int n =sizeof (arr) / sizeof (arr [0]); cout <<"Nhap nhieu hon:"; moreFreq (arr, n);} 

Đầu ra

 Tần suất nhiều hơn một:1 2 5