Chúng ta được cung cấp một ma trận có kích thước n x n và điều kiện là a [i] [j] =0 và nhiệm vụ là tính toán sự khác biệt lớn nhất của các chỉ số có [i] [ j] =0. Vì vậy, chúng ta có thể nói rõ rằng phải có ít nhất một số 0 trong ma trận.
Đầu vào
int matrix[][] = { {0, 1, 1}, {0, 0, 0}, {4, 5, 1}}
Đầu ra − Hiệu số tối đa của các chỉ số (i, j) sao cho A [i] [j] =0 trong ma trận đã cho là -
Giải thích - ta có phần tử 0 tại ma trận [0] [0], ma trận [1] [0], ma trận [1] [1] và ma trận [1] [2]. Vì vậy, sự khác biệt lớn nhất của các chỉ số sẽ nằm ở ma trận [1] [0] có phần tử 0. Vì vậy, sự khác biệt lớn nhất là 1.
Đầu vào
int matrix[][] = { {0, 1, 1}, {0, 2, 9}, {4, 0, 1}}
Đầu ra - Hiệu số lớn nhất của các chỉ số (i, j) sao cho A [i] [j] =0 trong ma trận đã cho là -
Giải thích - ta có phần tử 0 tại ma trận [0] [0], ma trận [1] [0] và ma trận [2] [1]. Vì vậy, sự khác biệt lớn nhất của các chỉ số sẽ nằm ở ma trận [1] [0] và ma trận [2] [1] có phần tử là 0. Vì vậy, sự khác biệt lớn nhất là 1.
Phương pháp tiếp cận được sử dụng trong chương trình dưới đây như sau
-
Nhập ma trận sao cho nó phải chứa ít nhất một 1 ở bất kỳ chỉ số nào.
-
Xác định kích thước tối đa của hàng và cột, tức là kích thước n x n.
-
Lấy một biến tạm thời sẽ lưu trữ giá trị chênh lệch tối đa.
-
Bắt đầu vòng lặp For từ 0 cho đến row_size
-
Bên trong vòng lặp, bắt đầu một vòng lặp khác For từ 0 cho đến col_size
-
Kiểm tra ma trận IF [i] [j] =0
-
Sau đó, đặt giá trị tối đa là giá trị lớn nhất làm chênh lệch giữa các chỉ số.
-
Trả lại giá trị tối đa
-
In kết quả.
Ví dụ
#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; }
Đầu ra
Nếu chúng ta chạy đoạn mã trên, chúng ta sẽ nhận được kết quả sau -
Maximum difference of indices with A[i][j] = 0 is: 2