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

Đếm phần tử của mảng có trong mỗi hàng của ma trận NxM trong C ++

Chúng tôi được cung cấp một mảng các phần tử kiểu số nguyên và một ma trận hoặc mảng 2-D có kích thước hàng và cột đã cho và nhiệm vụ là tính số phần tử của một mảng có trong mỗi hàng của ma trận.

Đầu vào

 int arr ={2, 4, 6} và int matrix [row] [col] ={{2, 4, 6}, {3, 4, 6}, {6, 2, 1}}  

Đầu ra

 Các phần tử của mảng ở hàng 1 là:3 Các phần tử của mảng ở hàng 2 là:2 Phần tử của mảng ở hàng 3 là:2 

Giải thích

 chúng ta đang có mảng chứa 2, 4 và 6 dưới dạng phần tử và bây giờ chúng ta sẽ kiểm tra sự xuất hiện của 3 phần tử trong mỗi hàng của ma trận bằng cách so khớp các phần tử của một mảng với các phần tử của ma trận, như, 2, 4 và 6 tất cả đều có mặt trong hàng đầu tiên của ma trận nên số phần tử của hàng 1 là 3, tương tự, số phần tử của hàng 2 là 2 vì chỉ có 4 và 6 ở đó và số phần tử của hàng 3 là 2 chỉ là 2 và 6 ở đó. 

Đầu vào

 int arr ={1, 3} và int matrix [row] [col] ={{1, 4, 6}, {3, 1, 6}, {6, 2, 4}} 

Đầu ra

 Các phần tử của mảng ở hàng 1 là:1 Phần thực hiện của mảng ở hàng 2 là:2 Phần tử của mảng ở hàng 3 là:0 

Giải thích

 chúng ta đang có mảng chứa 1 và 3 dưới dạng phần tử và bây giờ chúng ta sẽ kiểm tra sự xuất hiện của 2 phần tử trong mọi hàng của ma trận bằng cách so khớp các phần tử của mảng với các phần tử của ma trận, chẳng hạn như chỉ có 1 ở hàng đầu tiên của ma trận nên số phần tử của hàng 1 là 1, tương tự, số phần tử của hàng 2 là 2 vì 1 và 3 đều ở đó và số phần tử của hàng 3 là 0 vì không có phần tử nào trong số 1 và 3 ở đó.  

Phương pháp tiếp cận được sử dụng trong chương trình dưới đây như sau

Có thể có nhiều cách tiếp cận để giải quyết vấn đề đã cho, tức là cách tiếp cận ngây thơ và cách tiếp cận hiệu quả. Vì vậy, trước tiên chúng ta hãy xem xét cách tiếp cận ngây thơ .

  • Nhập một mảng các phần tử số nguyên và ma trận có kích thước hàng và cột

  • Tính kích thước của một mảng và chuyển mảng, ma trận và kích thước của mảng cho hàm để xử lý thêm

  • Lấy một số biến tạm thời để lưu trữ số lượng các phần tử có trong hàng ma trận.

  • Bắt đầu vòng lặp FOR từ 0 cho đến hết kích thước hàng của ma trận

  • Bên trong vòng lặp, hãy bắt đầu FOR từ 0 cho đến hết kích thước của một mảng

  • Đặt nhiệt độ với arr [k]

  • Bắt đầu một vòng lặp FOR khác từ 0 cho đến khi kích thước cột của ma trận

  • Bên trong các vòng lặp, kiểm tra IF temp =matrix [i] [j] rồi tăng số lượng lên 1

  • Đặt số lượng thành 0 để làm mới nó sau khi thay đổi mỗi hàng

  • In giá trị của số lượng trước khi thay đổi mỗi hàng.

Phương pháp tiếp cận hiệu quả

  • Nhập một mảng các phần tử số nguyên và ma trận có kích thước hàng và cột

  • Tính kích thước của một mảng và chuyển mảng, ma trận và kích thước của mảng cho hàm để xử lý thêm

  • Bắt đầu vòng lặp FOR từ 0 cho đến hết kích thước hàng của ma trận

  • Tạo một biến kiểu unsrdered_map

  • Bắt đầu một vòng lặp FOR khác từ 0 cho đến khi kích thước cột của ma trận

  • Đặt một bản đồ không có thứ tự với ma trận [i] [j] là 1

  • Lấy một số biến tạm thời để lưu trữ số lượng các phần tử có trong hàng ma trận.

  • Bên trong vòng lặp, hãy bắt đầu FOR từ 0 cho đến hết kích thước của một mảng

  • Kiểm tra IF um [arr [j]] ==1 rồi tăng số lượng lên 1

  • In giá trị của số lượng trước khi thay đổi mỗi hàng.

Ví dụ (cách tiếp cận ngây thơ)

 #include  using namespace std; #define row 3 # define col 3void arr_matrix (int matrix [row] [col], int arr [], int size) {int count =0; // cho hàng của ma trận for (int i =0; i  

Đầu ra

Nếu chúng ta chạy đoạn mã trên, nó sẽ tạo ra kết quả sau -

 Các phần tử của mảng ở hàng 1 là:3 Các phần tử của mảng ở hàng 2 là:2 Phần tử của mảng ở hàng 3 là:2 

Ví dụ (Cách tiếp cận hiệu quả)

 #include  using namespace std; #define row 3 # define col 3void arr_matrix (int matrix [row] [col], int arr [], int size) {for (int i =0; i  um; for (int j =0; j  

Đầu ra

Nếu chúng ta chạy đoạn mã trên, nó sẽ tạo ra kết quả sau -

 Các phần tử của mảng ở hàng 1 là:3 Các phần tử của mảng ở hàng 2 là:2 Phần tử của mảng ở hàng 3 là:2