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

Tìm số phần tử vị trí trong C ++

Trong bài toán này, chúng ta được cung cấp mảng hai chiều mat [n] [m]. Nhiệm vụ của chúng ta là tìm số phần tử vị trí.

Một phần tử được cho là một phần tử vị trí nếu phần tử đó là phần tử tối đa hoặc tối thiểu của hàng hoặc cột.

Hãy lấy một ví dụ để hiểu vấn đề,

Đầu vào

mat[][] = {2, 5, 7}
{1, 3, 4}
{5, 1, 3}

Đầu ra

8

Giải thích

Các phần tử 2, 5, 7, 1, 4, 5, 1, 3 là các phần tử vị trí.

Phương pháp tiếp cận giải pháp

Một giải pháp đơn giản cho vấn đề là lưu trữ phần tử tối đa và tối thiểu của mỗi hàng và cột. Và sau đó kiểm tra tình trạng và đếm số lượng.

Chương trình minh họa hoạt động của giải pháp của chúng tôi,

Ví dụ

#include <iostream>
using namespace std;
const int MAX = 100;
int countAllPositionalElements(int mat[][MAX], int m, int n){
   int rowmax[m], rowmin[m];
   int colmax[n], colmin[n];
   for (int i = 0; i < m; i++) {
      int rminn = 10000;
      int rmaxx = -10000;
      for (int j = 0; j < n; j++) {
         if (mat[i][j] > rmaxx)
            rmaxx = mat[i][j];
         if (mat[i][j] < rminn)
            rminn = mat[i][j];
      }
      rowmax[i] = rmaxx;
      rowmin[i] = rminn;
   }
   for (int j = 0; j < n; j++) {
      int cminn = 10000;
      int cmaxx = -10000;
      for (int i = 0; i < m; i++) {
         if (mat[i][j] > cmaxx)
            cmaxx = mat[i][j];
         if (mat[i][j] < cminn)
            cminn = mat[i][j];
      }
      colmax[j] = cmaxx;
      colmin[j] = cminn;
   }
   int positionalCount = 0;
   for (int i = 0; i < m; i++) {
      for (int j = 0; j < n; j++) {
         if ((mat[i][j] == rowmax[i]) || (mat[i][j] ==
            rowmin[i]) || (mat[i][j] == colmax[j]) || (mat[i][j] == colmin[j])){
            positionalCount++;
         }
      }
   }
   return positionalCount;
}
int main(){
   int mat[][MAX] = {
      { 2, 5, 7 },
      { 1, 3, 4 },
      { 5, 1, 3 }
   };
   int m = 3, n = 3;
   cout<<"Number of positional elements is "<<countAllPositionalElements(mat, m, n);
   return 0;
}

Đầu ra

Number of positional elements is 8