給定矩陣中,滿足 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