<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                合規國際互聯網加速 OSASE為企業客戶提供高速穩定SD-WAN國際加速解決方案。 廣告
                # 矩陣中 4 個相鄰元素的最大積 > 原文: [https://www.geeksforgeeks.org/maximum-product-of-4-adjacent-elements-in-matrix/](https://www.geeksforgeeks.org/maximum-product-of-4-adjacent-elements-in-matrix/) 給定一個正方形矩陣,找到矩陣的四個相鄰元素的最大積。 矩陣的相鄰元素可以是上,下,左,右,對角線或反對角線。 四個或更多數字應彼此相鄰。 **注意**: n 應該大于或等于 4,即> = 4 **示例**: ``` Input : n = 4 {{6, 2, 3 4}, {5, 4, 3, 1}, {7, 4, 5, 6}, {8, 3, 1, 0}} Output : 1680 Explanation: Multiplication of 6 5 7 8 produces maximum result and all element are adjacent to each other in one direction Input : n = 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}} Output: 3024 Explanation: Multiplication of 6 7 8 9 produces maximum result and all elements are adjacent to each other in one direction. ``` **提問者:Tolexo** **方法**: 1.將每行中彼此相鄰的 4 個元素分組,并計算其最大結果。 2.在每列中彼此相鄰的第 4 組元素,并計算其最大結果。 3.對角線中彼此相鄰的第 4 組元素,并計算其最大結果。 4.以對角線方向彼此相鄰的第 4 組元素,并計算其最大結果。 5.比較所有計算出的最大結果。 下面是上述方法的實現: ## C++ ```cpp // C++ program to find out the maximum product // in the matrix which four elements are? // adjacent to each other in one direction #include <bits/stdc++.h> using namespace std; const int n = 5; // function to find max product int FindMaxProduct(int arr[][n], int n) { ????int max = 0, result; ????// iterate the rows. ????for (int i = 0; i < n; i++)? ????{ ????????// iterate the columns. ????????for (int j = 0; j < n; j++)? ????????{ ????????????// check the maximum product? ????????????// in horizontal row. ????????????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; ????????????} ????????????// check the maximum product? ????????????// 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; ????????????} ????????????// check the maximum product in ????????????// diagonal (going through down - right) ????????????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; ????????????} ????????????// check the maximum product in ????????????// diagonal (going through up - right) ????????????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; } // driver code int main() { ????/* int arr[][4] = {{6, 2, 3, 4},? ????????????????????{5, 4, 3, 1}, ????????????????????{7, 4, 5, 6}, ????????????????????{8, 3, 1, 0}};*/ ????/* int arr[][5] = {{1, 2, 1, 3, 4}, ????????????????????{5, 6, 3, 9, 2}, ????????????????????{7, 8, 8, 1, 2}, ????????????????????{1, 0, 7, 9, 3}, ????????????????????{3, 0, 8, 4, 9}};*/ ????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; } ``` ## Java ```java // Java program to find out the // maximum product in the matrix // which four elements are adjacent // to each other in one direction class GFG? { static final int n = 5; // function to find max product static int FindMaxProduct(int arr[][], int n)? { ????int max = 0, result; ????// iterate the rows. ????for (int i = 0; i < n; i++)? ????{ ????// iterate the columns. ????for (int j = 0; j < n; j++)? ????{ ????????// check the maximum product ????????// in horizontal row. ????????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; ????????} ????????// check the maximum product ????????// 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; ????????} ????????// check the maximum product in ????????// diagonal (going through down - right) ????????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; ????????} ????????// check the maximum product in ????????// diagonal (going through up - right) ????????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; } // Driver code public static void main(String[] args)? { ????/* int arr[][4] = {{6, 2, 3, 4}, ???????????????????????{5, 4, 3, 1}, ???????????????????????{7, 4, 5, 6}, ???????????????????????{8, 3, 1, 0}};*/ ????/* int arr[][5] = {{1, 2, 1, 3, 4}, ???????????????????????{5, 6, 3, 9, 2}, ???????????????????????{7, 8, 8, 1, 2}, ???????????????????????{1, 0, 7, 9, 3}, ???????????????????????{3, 0, 8, 4, 9}};*/ ????int arr[][] = {{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}}; ????System.out.print(FindMaxProduct(arr, n)); } } // This code is contributed by Anant Agarwal. ``` ## Python 3 ``` # Python 3 program to find out the maximum? # product in the matrix which four elements? # are adjacent to each other in one direction n = 5 # function to find max product def FindMaxProduct(arr, n): ????max = 0 ????# iterate the rows. ????for i in range(n):? ????????# iterate the columns. ????????for j in range( n):? ????????????# check the maximum product? ????????????# in horizontal row. ????????????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 ????????????# check the maximum product? ????????????# 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 ????????????# check the maximum product in ????????????# diagonal going through down - right? ????????????if ((i - 3) >= 0 and (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 ????????????# check the maximum product in ????????????# diagonal going through up - right ????????????if ((i - 3) >= 0 and (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 # Driver code if __name__ == "__main__": ????# int arr[][4] = {{6, 2, 3, 4},? ????#????????????????? {5, 4, 3, 1}, ????#????????????????? {7, 4, 5, 6}, ????#????????????????? {8, 3, 1, 0}}; ????# int arr[][5] = {{1, 2, 1, 3, 4}, ????#????????????????? {5, 6, 3, 9, 2}, ????#????????????????? {7, 8, 8, 1, 2}, ????#????????????????? {1, 0, 7, 9, 3}, ????#????????????????? {3, 0, 8, 4, 9}}; ????arr = [[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]] ????print(FindMaxProduct(arr, n)) # This code is contributed by ita_c ``` ## C# ```cs // C# program to find out the // maximum product in the matrix // which four elements are adjacent // to each other in one direction using System; public class GFG { ????static int n = 5; // Function to find max product static int FindMaxProduct(int[,] arr, int n)? { ????int max = 0, result; ????// iterate the rows ????for (int i = 0; i < n; i++) { ????// iterate the columns ????for (int j = 0; j < n; j++) { ????????// check the maximum product ????????// in horizontal row. ????????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; ????????} ????????// check the maximum product ????????// 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; ????????} ????????// check the maximum product in ????????// diagonal going through down - right ????????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; ????????} ????????// check the maximum product in? ????????// diagonal going through up - right ????????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; } ????// Driver Code ????static public void Main () ????{ ????int[,]arr = {{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}}; ????Console.Write(FindMaxProduct(arr, n)); ????} } // This code is contributed by Shrikant13 ``` ## PHP ```php <?php // PHP program to find out the maximum product // in the matrix which four elements are? // adjacent to each other in one direction $n = 5; // function to find max product function FindMaxProduct( $arr, $n) { ????$max = 0; $result; ????// iterate the rows. ????for ( $i = 0; $i < $n; $i++)? ????{ ????????// iterate the columns. ????????for ( $j = 0; $j < $n; $j++)? ????????{ ????????????// check the maximum product? ????????????// in horizontal row. ????????????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; ????????????} ????????????// check the maximum product? ????????????// 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; ????????????} ????????????// check the maximum product in ????????????// diagonal going through down - right ????????????if (($i - 3) >= 0 and ($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; ????????????} ????????????// check the maximum product in ????????????// diagonal going through up - right ????????????if (($i - 3) >= 0 and ($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; } ????// Driver Code???????????????????????? ????$arr = array(array(1, 2, 3, 4, 5), ?????????????????array(6, 7, 8, 9, 1), ?????????????????array(2, 3, 4, 5, 6), ?????????????????array(7, 8, 9, 1, 0), ?????????????????array(9, 6, 4, 2, 3)); ????echo FindMaxProduct($arr, $n); // This code is contributed by anuj_67\. ?> ``` **輸出**: ``` 3024 ``` * * * * * *
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看