Trong hướng dẫn này, chúng ta sẽ thảo luận về chương trình tìm số lượng phần tử trong mảng xuất hiện ít nhất K lần sau lần xuất hiện đầu tiên của chúng.
Chúng ta sẽ được cung cấp một mảng số nguyên và một giá trị k. Nhiệm vụ của chúng ta là đếm tất cả các phần tử xuất hiện k lần trong các phần tử sau phần tử đang xét.
Ví dụ
#include <iostream>
#include <map>
using namespace std;
//trả về số lượng phần tử
int calc_count(int n, int arr[], int k){
int cnt, ans = 0;
//tránh trùng lặp
map<int, bool> hash;
for (int i = 0; i < n; i++) {
cnt = 0;
if (hash[arr[i]] == true)
continue;
hash[arr[i]] = true;
for (int j = i + 1; j < n; j++) {
if (arr[j] == arr[i])
cnt++;
//nếu có k phần tử
if (cnt >= k)
break;
}
if (cnt >= k)
ans++;
}
return ans;
}
int main(){
int arr[] = { 1, 2, 1, 3 };
int n = sizeof(arr) / sizeof(arr[0]);
int k = 1;
cout << calc_count(n, arr, k);
return 0;
}
Kết quả
1