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

Đếm các phần tử nhỏ hơn ở phía bên phải bằng cách sử dụng Đặt trong C ++ STL

Trong hướng dẫn này, chúng ta sẽ thảo luận về một chương trình để đếm các phần tử nhỏ hơn ở phía bên phải bằng cách sử dụng bộ trong C ++ STL.

Đối với điều này, chúng tôi sẽ được cung cấp một mảng. Nhiệm vụ của chúng ta là tạo một mảng mới và thêm số phần tử nhỏ hơn vào bên phải của phần tử hiện tại tại vị trí của nó.

Ví dụ

#include <bits/stdc++.h>
using namespace std;
void count_Rsmall(int A[], int len){
   set<int> s;
   int countSmaller[len];
   for (int i = len - 1; i >= 0; i--) {
      s.insert(A[i]);
      auto it = s.lower_bound(A[i]);
      countSmaller[i] = distance(s.begin(), it);
   }
   for (int i = 0; i < len; i++)
      cout << countSmaller[i] << " ";
}
int main(){
   int A[] = {12, 1, 2, 3, 0, 11, 4};
   int len = sizeof(A) / sizeof(int);
   count_Rsmall(A, len);
   return 0;
}

Đầu ra

6 1 1 1 0 1 0