Impresión de elementos de contorno de una array.
Dada una array de tamaño nx m. Imprime los elementos de contorno de la array. Los elementos de contorno son aquellos elementos que no están rodeados por elementos en las cuatro direcciones, es decir, elementos en la primera fila, primera columna, última fila y última columna.
Ejemplos:
Input : 1 2 3 4 5 6 7 8 1 2 3 4 5 6 7 8 Output : 1 2 3 4 5 8 1 4 5 6 7 8 Explanation:The boundary elements of the matrix is printed. Input: 1 2 3 5 6 7 1 2 3 Output: 1 2 3 5 7 1 2 3 Explanation:The boundary elements of the matrix is printed.
Enfoque: La idea es simple. Atraviese la array y verifique para cada elemento si ese elemento se encuentra en el límite o no, en caso afirmativo, imprima el elemento; de lo contrario, imprima el carácter de espacio.
- Algoritmo:
- Atraviesa la array de principio a fin.
- Asigne el bucle exterior para señalar la fila y la fila interior para atravesar los elementos de la fila.
- Si el elemento se encuentra en el límite de la array, imprima el elemento, es decir, si el elemento se encuentra en la primera fila, la primera columna, la última fila, la última columna
- Si el elemento no es un elemento de límite, imprima un espacio en blanco.
- Implementación:
C++
// C++ program to print boundary element of // matrix. #include <bits/stdc++.h> using namespace std; const int MAX = 100; void printBoundary(int a[][MAX], int m, int n) { for (int i = 0; i < m; i++) { for (int j = 0; j < n; j++) { if (i == 0 || j == 0 || i == n - 1 || j == n - 1) cout << a[i][j] << " "; else cout << " " << " "; } cout << "\n"; } } // Driver code int main() { int a[4][MAX] = { { 1, 2, 3, 4 }, { 5, 6, 7, 8 }, { 1, 2, 3, 4 }, { 5, 6, 7, 8 } }; printBoundary(a, 4, 4); return 0; }
Java
// JAVA Code for Boundary elements of a Matrix class GFG { public static void printBoundary(int a[][], int m, int n) { for (int i = 0; i < m; i++) { for (int j = 0; j < n; j++) { if (i == 0) System.out.print(a[i][j] + " "); else if (i == m - 1) System.out.print(a[i][j] + " "); else if (j == 0) System.out.print(a[i][j] + " "); else if (j == n - 1) System.out.print(a[i][j] + " "); else System.out.print(" "); } System.out.println(""); } } /* Driver program to test above function */ public static void main(String[] args) { int a[][] = { { 1, 2, 3, 4 }, { 5, 6, 7, 8 }, { 1, 2, 3, 4 }, { 5, 6, 7, 8 } }; printBoundary(a, 4, 4); } } // This code is contributed by Arnav Kr. Mandal.
Python
# Python program to print boundary element # of the matrix. MAX = 100 def printBoundary(a, m, n): for i in range(m): for j in range(n): if (i == 0): print a[i][j], elif (i == m-1): print a[i][j], elif (j == 0): print a[i][j], elif (j == n-1): print a[i][j], else: print " ", print # Driver code a = [ [ 1, 2, 3, 4 ], [ 5, 6, 7, 8 ], [ 1, 2, 3, 4 ], [ 5, 6, 7, 8 ] ] printBoundary(a, 4, 4) # This code is contributed by Sachin Bisht
C#
// C# Code for Boundary // elements of a Matrix using System; class GFG { public static void printBoundary(int[, ] a, int m, int n) { for (int i = 0; i < m; i++) { for (int j = 0; j < n; j++) { if (i == 0) Console.Write(a[i, j] + " "); else if (i == m - 1) Console.Write(a[i, j] + " "); else if (j == 0) Console.Write(a[i, j] + " "); else if (j == n - 1) Console.Write(a[i, j] + " "); else Console.Write(" "); } Console.WriteLine(" "); } } // Driver Code static public void Main() { int[, ] a = { { 1, 2, 3, 4 }, { 5, 6, 7, 8 }, { 1, 2, 3, 4 }, { 5, 6, 7, 8 } }; printBoundary(a, 4, 4); } } // This code is contributed by ajit
PHP
<?php // PHP program to print // boundary element of // matrix. $MAX = 100; function printBoundary($a, $m, $n) { global $MAX; for ($i = 0; $i < $m; $i++) { for ($j = 0; $j < $n; $j++) { if ($i == 0) echo $a[$i][$j], " "; else if ($i == $m - 1) echo $a[$i][$j], " "; else if ($j == 0) echo $a[$i][$j], " "; else if ($j == $n - 1) echo $a[$i][$j], " "; else echo " ", " "; } echo "\n"; } } // Driver code $a = array(array( 1, 2, 3, 4 ), array( 5, 6, 7, 8 ), array( 1, 2, 3, 4 ), array( 5, 6, 7, 8 )); printBoundary($a, 4, 4); // This code is contributed // by akt_mit ?>
Javascript
<script> // JavaScript Code for Boundary // elements of a Matrix function printBoundary(a, m, n) { for (var i = 0; i < m; i++) { for (var j = 0; j < n; j++) { if (i == 0) document.write(a[i][j] + '\xa0'); else if (i == m - 1) document.write(a[i][j] + '\xa0'); else if (j == 0) document.write(a[i][j] + '\xa0'); else if (j == n - 1) document.write(a[i][j] + '\xa0'); else document.write("\xa0\xa0\xa0"); } document.write("\xa0<br>"); } } // Driver Code var a = [ [ 1, 2, 3, 4 ], [ 5, 6, 7, 8 ], [ 1, 2, 3, 4 ], [ 5, 6, 7, 8 ]]; printBoundary(a, 4, 4); </script>
Producción:
1 2 3 4 5 8 1 4 5 6 7 8
- Análisis de Complejidad:
- Complejidad de tiempo: O(n*n), donde n es el tamaño de la array.
Esto se logra mediante un solo recorrido de la array. - Complejidad espacial: O(1).
Ya que se necesita un espacio constante.
- Complejidad de tiempo: O(n*n), donde n es el tamaño de la array.
Hallar la suma de los elementos de contorno
Dada una array de tamaño nx m. Encuentre la suma de los elementos de contorno de la array. Los elementos de contorno son aquellos elementos que no están rodeados por elementos en las cuatro direcciones, es decir, elementos en la primera fila, la primera columna, la última fila y la última columna.
Ejemplos:
Input : 1 2 3 4 5 6 7 8 1 2 3 4 5 6 7 8 Output : 54 Explanation:The boundary elements of the matrix 1 2 3 4 5 8 1 4 5 6 7 8 Sum = 1+2+3+4+5+8+1+4+5+6+7+8 =54 Input : 1 2 3 5 6 7 1 2 3 Output : 24 Explanation:The boundary elements of the matrix 1 2 3 5 7 1 2 3 Sum = 1+2+3+5+7+1+2+3 = 24
Enfoque: La idea es simple. Atraviese la array y verifique para cada elemento si ese elemento se encuentra en el límite o no, si es así, agréguelos para obtener la suma de todos los elementos del límite.
- Algoritmo:
- Cree una variable para almacenar la suma y recorrer la array de principio a fin.
- Asigne el bucle exterior para señalar la fila y la fila interior para atravesar los elementos de la fila.
- Si el elemento se encuentra en el límite de la array, agregue el elemento a la suma, es decir, si el elemento se encuentra en la primera fila, la primera columna, la última fila, la última columna
- imprimir la suma.
- Implementación:
C++
// C++ program to find sum of boundary elements // of matrix. #include <bits/stdc++.h> using namespace std; const int MAX = 100; int getBoundarySum(int a[][MAX], int m, int n) { long long int sum = 0; for (int i = 0; i < m; i++) { for (int j = 0; j < n; j++) { if (i == 0) sum += a[i][j]; else if (i == m - 1) sum += a[i][j]; else if (j == 0) sum += a[i][j]; else if (j == n - 1) sum += a[i][j]; } } return sum; } // Driver code int main() { int a[][MAX] = { { 1, 2, 3, 4 }, { 5, 6, 7, 8 }, { 1, 2, 3, 4 }, { 5, 6, 7, 8 } }; long long int sum = getBoundarySum(a, 4, 4); cout << "Sum of boundary elements is " << sum; return 0; }
Java
// JAVA Code for Finding sum of boundary elements class GFG { public static long getBoundarySum(int a[][], int m, int n) { long sum = 0; for (int i = 0; i < m; i++) { for (int j = 0; j < n; j++) { if (i == 0) sum += a[i][j]; else if (i == m - 1) sum += a[i][j]; else if (j == 0) sum += a[i][j]; else if (j == n - 1) sum += a[i][j]; } } return sum; } /* Driver program to test above function */ public static void main(String[] args) { int a[][] = { { 1, 2, 3, 4 }, { 5, 6, 7, 8 }, { 1, 2, 3, 4 }, { 5, 6, 7, 8 } }; long sum = getBoundarySum(a, 4, 4); System.out.println("Sum of boundary elements" + " is " + sum); } } // This code is contributed by Arnav Kr. Mandal.
Python
# Python program to print boundary element # of the matrix. MAX = 100 def printBoundary(a, m, n): sum = 0 for i in range(m): for j in range(n): if (i == 0): sum += a[i][j] elif (i == m-1): sum += a[i][j] elif (j == 0): sum += a[i][j] elif (j == n-1): sum += a[i][j] return sum # Driver code a = [ [ 1, 2, 3, 4 ], [ 5, 6, 7, 8 ], [ 1, 2, 3, 4 ], [ 5, 6, 7, 8 ] ] sum = printBoundary(a, 4, 4) print "Sum of boundary elements is", sum # This code is contributed by Sachin Bisht
C#
// C# Code for Finding sum // of boundary elements using System; class GFG { public static long getBoundarySum(int[, ] a, int m, int n) { long sum = 0; for (int i = 0; i < m; i++) { for (int j = 0; j < n; j++) { if (i == 0) sum += a[i, j]; else if (i == m - 1) sum += a[i, j]; else if (j == 0) sum += a[i, j]; else if (j == n - 1) sum += a[i, j]; } } return sum; } // Driver Code static public void Main() { int[, ] a = { { 1, 2, 3, 4 }, { 5, 6, 7, 8 }, { 1, 2, 3, 4 }, { 5, 6, 7, 8 } }; long sum = getBoundarySum(a, 4, 4); Console.WriteLine("Sum of boundary" + " elements is " + sum); } } // This code is contributed by ajit
PHP
<?php // PHP program to find // sum of boundary // elements of matrix. function getBoundarySum($a, $m, $n) { $sum = 0; for ($i = 0; $i < $m; $i++) { for ( $j = 0; $j < $n; $j++) { if ($i == 0) $sum += $a[$i][$j]; else if ($i == $m - 1) $sum += $a[$i][$j]; else if ($j == 0) $sum += $a[$i][$j]; else if ($j == $n - 1) $sum += $a[$i][$j]; } } return $sum; } // Driver code $a = array(array(1, 2, 3, 4), array(5, 6, 7, 8), array(1, 2, 3, 4), array(5, 6, 7, 8)); $sum = getBoundarySum($a, 4, 4); echo "Sum of boundary elements is ", $sum; // This code is contributed by ajit ?>
Javascript
<script> // Javascript code for finding sum // of boundary elements function getBoundarySum(a, m, n) { let sum = 0; for(let i = 0; i < m; i++) { for(let j = 0; j < n; j++) { if (i == 0) sum += a[i][j]; else if (i == m - 1) sum += a[i][j]; else if (j == 0) sum += a[i][j]; else if (j == n - 1) sum += a[i][j]; } } return sum; } // Driver code let a = [ [ 1, 2, 3, 4 ], [ 5, 6, 7, 8 ], [ 1, 2, 3, 4 ], [ 5, 6, 7, 8 ] ]; let sum = getBoundarySum(a, 4, 4); document.write("Sum of boundary elements" + " is " + sum); // This code is contributed by rameshtravel07 </script>
Producción:
Sum of boundary elements is 54
- Análisis de Complejidad:
- Complejidad de tiempo: O(n*n), donde n es el tamaño de la array.
Esto se logra mediante un solo recorrido de la array. - Complejidad espacial: O(1).
Ya que se necesita un espacio constante.
- Complejidad de tiempo: O(n*n), donde n es el tamaño de la array.
Este artículo es una contribución de Sarthak Kohli . Si te gusta GeeksforGeeks y te gustaría contribuir, también puedes escribir un artículo usando write.geeksforgeeks.org o enviar tu artículo por correo a review-team@geeksforgeeks.org. Vea su artículo que aparece en la página principal de GeeksforGeeks y ayude a otros Geeks.
Escriba comentarios si encuentra algo incorrecto o si desea compartir más información sobre el tema tratado anteriormente.
Publicación traducida automáticamente
Artículo escrito por GeeksforGeeks-1 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA