C++の行列内の4つの隣接する要素の最大積
このチュートリアルでは、行列内の4つの隣接する要素の最大積を見つけるプログラムについて説明します。
このために、正方行列が提供されます。私たちのタスクは、上、下、右、左、または対角の4つの隣接する要素の最大積を見つけることです。
例
#include <bits/stdc++.h>
using namespace std;
const int n = 5;
//finding maximum product
int FindMaxProduct(int arr[][n], int n) {
int max = 0, result;
for (int i = 0; i < n; i++) {
for (int j = 0; j < n; j++) {
if ((j - 3) >= 0) {
result = arr[i][j] * arr[i][j - 1] * arr[i][j - 2] * arr[i][j - 3];
if (max < result)
max = result;
}
//checking in vertical row
if ((i - 3) >= 0) {
result = arr[i][j] * arr[i - 1][j] * arr[i - 2][j] * arr[i - 3][j];
if (max < result)
max = result;
}
//checking in diagonal
if ((i - 3) >= 0 && (j - 3) >= 0) { result = arr[i][j] * arr[i - 1][j - 1] * arr[i - 2][j - 2] * arr[i - 3][j - 3];
if (max < result)
max = result;
}
if ((i - 3) >= 0 && (j - 1) <= 0) {
result = arr[i][j] * arr[i - 1][j + 1] * arr[i - 2][j + 2] * arr[i - 3][j + 3];
if (max < result)
max = result;
}
}
}
return max;
}
int main() {
int arr[][5] = {
{1, 2, 3, 4, 5},
{6, 7, 8, 9, 1},
{2, 3, 4, 5, 6},
{7, 8, 9, 1, 0},
{9, 6, 4, 2, 3}
};
cout << FindMaxProduct(arr, n);
return 0;
} 出力
3024
-
C++でのマトリックスの最大パス合計
この問題では、サイズM*Nの2D行列が与えられます。私たちのタスクは、マトリックス内の最大パス合計を見つけるプログラムを作成することです。 ここで、行列の最大パス合計は、1行から最後の行までのすべての要素の合計として定義されます。パスを横断するために許可されている移動は、下向きの移動と斜めの移動です。開始点と終了点は、それぞれマトリックスの最初の行と最後の行の任意の要素にすることができます。 問題を理解するために例を見てみましょう 入力 − matrix [][] = 3 5 9 1 7 2 4 8 6 出
-
C++の正方行列の最大値と最小値
問題の説明 次数n*nの正方行列が与えられた場合、行列から最大値と最小値を見つけます 例 与えられた行列が-の場合 {{15, 17, 19}, {5, 1, 7}, {14, 5, 16}} then Minimum number is 1 and maximum number is 19 アルゴリズム マトリックスから2つの要素を選択します。1つはマトリックスの行の先頭から、もう1つはマトリックスの同じ行の末尾から選択します。 それらを比較し、次にそれらの小さい方をマトリックスの最小値と比較し、大きい方をマトリックスの最大値と比較します。 2つの要素については、3つの比較が必要であ