크기가 n x n인 행렬과 a[i][j] =0이라는 조건이 주어지고 작업은 a[i][ j] =0. 따라서 행렬에는 최소한 하나의 0이 있어야 함을 분명히 말할 수 있습니다.
입력
int matrix[][] = {
{0, 1, 1},
{0, 0, 0},
{4, 5, 1}} 출력 − 주어진 행렬에서 A[i][j] =0인 인덱스(i, j)의 최대 차이는 -
설명 - 우리는 행렬[0][0], 행렬[1][0], 행렬[1][1] 및 행렬[1][2]에 요소 0이 있습니다. 따라서 인덱스의 최대 차이는 요소가 0인 행렬[1][0]에 있습니다. 따라서 최대 차이는 1입니다.
입력
int matrix[][] = {
{0, 1, 1},
{0, 2, 9},
{4, 0, 1}} 출력 - 주어진 행렬에서 A[i][j] =0이 되는 인덱스(i, j)의 최대 차이는 -
설명 - 우리는 행렬[0][0], 행렬[1][0] 및 행렬[2][1]에 요소 0을 가지고 있습니다. 따라서 인덱스의 최대 차이는 요소 0을 갖는 matrix[1][0]과 matrix[2][1]에 있습니다. 따라서 최대 차이는 1입니다.
아래 프로그램에서 사용된 접근 방식은 다음과 같습니다.
-
모든 인덱스에서 적어도 하나의 1을 포함해야 하는 행렬을 입력하십시오.
-
행과 열의 최대 크기, 즉 n x n의 크기를 정의합니다.
-
최대 차이 값을 저장할 임시 변수를 가져옵니다.
-
0부터 row_size
까지 루프 시작 -
루프 내에서 0에서 col_size
까지 For 또 다른 루프를 시작합니다. -
IF 행렬[i][j] =0
확인 -
그런 다음 최대 값을 인덱스 간의 차이로 최대 값으로 설정합니다.
-
최대값 반환
-
결과를 인쇄하십시오.
예시
#include <bits/stdc++.h>
using namespace std;
#define row 3
#define col 3
//find maximum difference
int maximum(int matrix[row][col]){
int max_val = 0;
for (int i = 0; i < row; i++){
for (int j = 0; j < col; j++){
if (matrix[i][j] == 0){
max_val = max(max_val, abs(i - j));
}
}
}
return max_val;
}
int main(){
int matrix[row][col] = {
{ 1, 2, 0},
{ 0, 4, 0},
{ 0, 1, 0}};
cout<<"Maximum difference of indices with A[i][j] = 0 is: "<<maximum(matrix);
return 0;
} 출력
위의 코드를 실행하면 다음과 같은 결과가 나옵니다. -
Maximum difference of indices with A[i][j] = 0 is: 2