索引(i,j)的最大差,使得C ++中给定矩阵中的A [i] [j] = 0
我们给定一个大小为nxn的矩阵,条件为a[i][j]=0,任务是计算a[i][j]=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}}
输出-索引(i,j)的最大差异,使得给定矩阵中的A[i][j]=0为-
解释-我们在矩阵[0][0],矩阵[1][0]和矩阵[2][1]处有元素0。因此,索引的最大差将在元素为0的矩阵[1][0]和矩阵[2][1]处。因此,最大差为1。
以下程序中使用的方法如下
输入矩阵,使其在任何索引处至少包含1。
定义行和列的最大大小,即nxn的大小。
取一个临时变量,该变量将存储最大差值。
从0到row_size的启动循环
在循环内,从0到col_size开始另一个循环
检查IF矩阵[i][j]=0
然后将最大值设置为作为指标之间的差异的最大值。
返回最大值
打印结果。
示例
#include <bits/stdc++.h> using namespace std; #define row 3 #define col 3 //找到最大的差异 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