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

Đếm tất cả các 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 trong C ++

Trong hướng dẫn này, chúng ta sẽ thảo luận về một chương trình để tìm số 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.

Đối với điều này, 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 giữa các phần tử sau phần tử đang xét.

Ví dụ

#include <iostream>
#include <map>
using namespace std;
//returning the count of elements
int calc_count(int n, int arr[], int k){
   int cnt, ans = 0;
   //avoiding duplicates
   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++;
         //if k elements are present
         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;
}

Đầu ra

1