Đếm mốc giới hạn lộ diện của những phần tử trong mảng là 1 trong bài xích tập về thiết kế sẽ giúp đỡ các bạn sinc viên không ít trong câu hỏi gọi về kết cấu của dữ liệu. Tuy là 1 bài bác tập dễ dàng tuy vậy có không ít phương thức để giải dạng bài tập này. Việc chọn lọc phương thức phụ thuộc vào dữ liệu bài bác toán thù đưa ra. Hãy thuộc khám phá những bí quyết code bài tập này trong bài viết tiếp sau đây.

Bạn đang xem: Đếm số lần xuất hiện của các phần tử trong mảng

*

Các phương pháp giải bài xích toán thù đếm mốc giới hạn xuất hiện của những bộ phận trong mảng

Đề bài: Cho một mảng một chiều tất cả n thành phần. Hãy đếm chu kỳ xuất hiện của những phần tử vào mảng cùng với n = 5 với a<> = 1, 2, 3, 1, 2

Ta thấy, hàng đầu mở ra 2 lần, số 2 lộ diện gấp đôi cùng số 3 mở ra 1 lần.

Pmùi hương pháp giải

Phương thơm pháp 1: Sử dụng chỉ số mảng làm key

Để đếm mốc giới hạn lộ diện của những bộ phận trong mảng, ta đề xuất quan tâm đến phạm vi quý hiếm của các bộ phận vào mảng.

Theo đề bài, ta bao gồm những thành phần vào mảng bảo đảm an toàn 2 điều kiện: a >= 0 cùng a

Do quý giá thỏa mãn cả hai điều kiện trên phải ta hoàn toàn có thể dùng chỉ số mảng i để đếm số lần mở ra của i. lúc đó:

a<0> = 0;a<1> = 2;a<2> = 2;a<3> = 1;

Phương pháp 2: Sử dụng kết cấu dữ liệu bản đồ vào C++

Theo cách thức này, ta vẫn áp dụng kết cấu tài liệu bản đồ để đếm mốc giới hạn xuất hiện của những phần tử. Giá trị value lúc ấy vẫn gìn giữ mốc giới hạn xuất hiện của key.

Phương thơm pháp 3: Sắp xếp cùng đếm

Với biện pháp này, chỉ cần bố trí mảng theo hướng tăng ngày một nhiều.

Xem thêm: Chuyên Bán Sỉ Quần Áo Quảng Châu Tại Hà Nội Lấy Hàng Ở Đâu? Cách Lấy Sỉ Quần Áo Quảng Châu Tại Hà Nội

Cách code đếm mốc giới hạn xuất hiện của những phần tử vào mảng đưa ra tiết

Trong bài viết này, Cửa Hàng chúng tôi đã đã cho thấy 3 biện pháp giúp những chúng ta cũng có thể thuận lợi lập trình bài xích toán đếm chu kỳ xuất hiện của các bộ phận trong mảng

*

Cách 1

Input:

#include using namespace std;const int MAX = 1e6;int cnt;int main() int n; do  cout cin >> n; while( int a; for(int i = 0; i do cout cin >> a;while(a for(int i = 0; i for(int i = 0; i cnt>++; } for(int i = 0; i if(cnt > 0) cout }}

Output:

Nhap n = 5Nhap a<0> = 1Nhap a<1> = 2Nhap a<2> = 2Nhap a<3> = 1Nhap a<4> = 3Gia tri 1 xuat hien 2 lan!Gia tri 2 xuat hien 2 lan!Gia tri 3 xuat hien 1 lan!

Cách 2: Sử dụng C++

Input:

#include #include using namespace std;const int N = 1e6;int a;int main() int n; cin >> n; maps cnt; for(int i = 0; i cin >> a; for(int i = 0; i cnt>++; } for(auto it : cnt)cout }

Output:

51 1 2 3 4Gia tri 1 xuat hien 2 lan!Gia tri 2 xuat hien 1 lan!Gia tri 3 xuat hien 1 lan!Gia tri 4 xuat hien 1 lan!

Cách 3: Sử dụng hàm std:::sort trong thỏng viện algorithm C++

Input:

#include #include using namespace std;const int N = 1e6;int a;int main() int n; cin >> n; for(int i = 0; i cin >> a; sort(a, a + ); int cnt = 1; for(int i = 1; i if(a == a) ++cnt;else cout cnt =1; } cout }

Output:

61 2 3 1 2 3Phan tu 1 xuat hien 2 lan!Phan tu 2 xuat hien 2 lan!Phan tu 3 xuat hien 2 lan!

Bài viết bên trên đây vẫn tổng phù hợp tương đối đầy đủ những phương thức cũng như biện pháp code đếm số lần lộ diện của các thành phần vào mảng C/C++. Hy vọng bài viết hoàn toàn có thể góp chúng ta thiết kế một biện pháp dễ dàng rộng. Chúc các bạn thực hành thành công xuất sắc.