给定矩阵中,满足 A[i][j] = 0 的索引 (i, j) 的最大差值 (C++)
给定一个 n x n 的矩阵,条件是 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) 的最大差值是 -
说明 - 我们在矩阵 matrix[0][0]、matrix[1][0]、matrix[1][1] 和 matrix[1][2] 中有元素 0。因此,索引的最大差值将在 matrix[1][0] 处,该处元素为 0。因此,最大差值为 1。
输入
int matrix[][] = {
{0, 1, 1},
{0, 2, 9},
{4, 0, 1}}输出 - 给定矩阵中,满足 A[i][j] = 0 的索引 (i, j) 的最大差值是 -
说明 - 我们在矩阵 matrix[0][0]、matrix[1][0] 和 matrix[2][1] 中有元素 0。因此,索引的最大差值将在 matrix[1][0] 和 matrix[2][1] 处,该处元素为 0。因此,最大差值为 1。
下面程序中使用的算法如下
输入矩阵,使其在任何索引处至少包含一个 1。
定义行和列的最大大小,即 n x n 的大小。
取一个临时变量,用于存储最大差值。
从 0 到 row_size 开始循环 For
在循环内,从 0 到 col_size 开始另一个循环 For
检查 IF matrix[i][j] = 0
然后将 max 值设置为索引差值的最大值。
返回 max 值
打印结果。
示例
#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
广告
数据结构
网络
关系数据库管理系统 (RDBMS)
操作系统
Java
iOS
HTML
CSS
Android
Python
C语言编程
C++
C#
MongoDB
MySQL
Javascript
PHP