Dada una array de orden impar mat , la tarea es encontrar la distancia más lejana de un 0 desde el centro de la array. La distancia entre dos elementos en las ubicaciones (i1, j1) e (i2, j2) de la array se calcula como |i1- i2| + |j1-j2|. Si no aparece 0 en la array, imprima 0 como resultado.
Ejemplos:
Entrada: mat[][] = {{2, 3, 0}, {0, 2, 0}, {0, 1, 1}}
Salida: 2
Entrada: mat[][] = {{2, 3, 4, {0, 2, 0}, {6, 1, 1}}
Salida: 1
Enfoque: el centro de cualquier array con orden impar está en el índice i = j = piso (n/2) . Ahora, para encontrar la distancia más lejana de cualquier 0 desde el centro, calcule la distancia de cada 0 desde el centro de la array como |in/2| + |jn/2| y actualice la distancia máxima como resultado. Imprima el resultado al final o, si la array no contiene ningún 0 , imprima 0 .
A continuación se muestra la implementación del enfoque anterior:
C++
// C++ program to find the farthest distance // of a 0 from the center of the matrix #include <bits/stdc++.h> #define n 3 using namespace std; // function to return farthest distance // of zero from center of the matrix int farthestDistance(int matrix[][n]) { int result = 0; // traverse the matrix for (int i = 0; i < n; i++) { for (int j = 0; j < n; j++) { if (matrix[i][j] == 0) result = max(result , abs(i - n/2) + abs(j - n/2)); } } // return result return result; } // driver program int main() { int matrix[n][n] = { { 1, 2, 3 } , { 0, 1, 1 } , { 0, 0, 0 } }; cout << farthestDistance(matrix); return 0; }
Java
// Java program to find the farthest distance // of a 0 from the center of the matrix import java.io.*; class GFG { static int n = 3; // function to return farthest distance // of zero from center of the matrix static int farthestDistance(int matrix[][]) { int result = 0; // traverse the matrix for (int i = 0; i < n; i++) { for (int j = 0; j < n; j++) { if (matrix[i][j] == 0) result = Math.max(result , Math.abs(i - n/2) + Math.abs(j - n/2)); } } // return result return result; } // driver program public static void main (String[] args) { int matrix[][] = { { 1, 2, 3 } , { 0, 1, 1 } , { 0, 0, 0 } }; System.out.print(farthestDistance(matrix)); } } // This code is contributed by anuj_67..
Python3
# Python3 program to find the farthest distance # of a 0 from the center of the matrix n = 3 # function to return farthest distance # of zero from center of the matrix def farthestDistance(matrix): result = 0 # traverse the matrix for i in range (0, n): for j in range (0, n): if (matrix[i][j] == 0): result = max(result, abs(i - n // 2) + abs(j - n//2)) # return result return result # Driver Code matrix = [[1, 2, 3], [0, 1, 1], [0, 0, 0]] print(farthestDistance(matrix)) # This code is contributed by # Archana_kumari
C#
// C# program to find the farthest distance // of a 0 from the center of the matrix using System; class GFG { static int n = 3; // function to return farthest distance // of zero from center of the matrix static int farthestDistance(int [,]matrix) { int result = 0; // traverse the matrix for (int i = 0; i < n; i++) { for (int j = 0; j < n; j++) { if (matrix[i,j] == 0) result = Math.Max(result , Math.Abs(i - n / 2) + Math.Abs(j - n / 2)); } } // return result return result; } // Driver Code static public void Main () { int [,]matrix = {{ 1, 2, 3 }, { 0, 1, 1 }, { 0, 0, 0 }}; Console.WriteLine(farthestDistance(matrix)); } } // This code is contributed by Sachin
PHP
<?php // PHP program to find the farthest distance // of a 0 from the center of the matrix $n = 3; // function to return farthest distance // of zero from center of the matrix function farthestDistance($matrix) { global $n; $result = 0; // traverse the matrix for ($i = 0; $i < $n; $i++) { for ($j = 0; $j < $n; $j++) { if (($matrix[$i][$j] == 0) > 0) $result = max($result, abs($i - $n / 2) + abs($j - $n / 2)); } } // return result return $result; } // Driver Code $matrix = array(array( 1, 2, 3 ), array( 0, 1, 1 ), array( 0, 0, 0 )); echo farthestDistance($matrix); // This code is contributed by Sach_code ?>
Javascript
<script> // Javascript program to find the farthest distance // of a 0 from the center of the matrix var n = 3; // function to return farthest distance // of zero from center of the matrix function farthestDistance(matrix) { var result = 0; // traverse the matrix for (var i = 0; i < n; i++) { for (var j = 0; j < n; j++) { if (matrix[i][j] == 0) result = Math.max(result , Math.abs(i - n/2) + Math.abs(j - n/2)); } } // return result return result; } // driver program var matrix = [ [ 1, 2, 3 ] , [ 0, 1, 1 ] , [ 0, 0, 0 ] ]; document.write( farthestDistance(matrix)); </script>
2
Complejidad de tiempo : O (N * M), ya que estamos usando bucles anidados para atravesar N * M veces.
Espacio auxiliar : O (1), ya que no estamos usando ningún espacio adicional para la array.
Publicación traducida automáticamente
Artículo escrito por Shivam.Pradhan y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA