
Data Structure
Networking
RDBMS
Operating System
Java
MS Excel
iOS
HTML
CSS
Android
Python
C Programming
C++
C#
MongoDB
MySQL
Javascript
PHP
- Selected Reading
- UPSC IAS Exams Notes
- Developer's Best Practices
- Questions and Answers
- Effective Resume Writing
- HR Interview Questions
- Computer Glossary
- Who is Who
Maximum Difference of Indices i and j Where A[i] is 0 in C++
We are given with a matrix of size n x n and a condition that a[i][j] = 0 and the task is to calculate the maximum difference of indices having a[i][j] = 0. So, we can clearly state that there must be at least one zero in a matrix.
Input
int matrix[][] = { {0, 1, 1}, {0, 0, 0}, {4, 5, 1}}
Output −Maximum difference of indices (i, j) such that A[i][j] = 0 in the given matrix is −
Explanation − we have element 0 at matrix[0][0], matrix[1][0], matrix[1][1] and matrix[1][2]. So the maximum difference of indices will be at matrix[1][0] which is having element 0. So the maximum difference is 1.
Input
int matrix[][] = { {0, 1, 1}, {0, 2, 9}, {4, 0, 1}}
Output − Maximum difference of indices (i, j) such that A[i][j] = 0 in the given matrix is −
Explanation − we have element 0 at matrix[0][0], matrix[1][0] and matrix[2][1]. So the maximum difference of indices will be at matrix[1][0] and matrix[2][1] which is having element 0. So the maximum difference is 1.
Approach used in the below program is as follows
Input the matrix such that it should contain at least one 1 at any indices.
Define the row and column maximum size i.e. size of n x n.
Take a temporary variable that will store the maximum difference value.
Start loop For from 0 till row_size
Inside the loop, start another loop For from 0 till col_size
Check IF matrix[i][j] = 0
Then set max value to be the max value as difference between the indices.
Return the max value
Print the result.
Example
#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; }
Output
If we run the above code we will get the following output −
Maximum difference of indices with A[i][j] = 0 is: 2