Comprobar si una array dada es escasa o no

Una array es un objeto de datos bidimensional que tiene m filas y n columnas, por lo tanto, un total de m*n valores. Si la mayoría de los valores de una array son 0, decimos que la array es escasa. 
Considere una definición de Sparse donde una array se considera dispersa si el número de 0 es más de la mitad de los elementos de la array,

Ejemplos: 

Input : 1 0 3
        0 0 4
        6 0 0
Output : Yes
There are 5 zeros. This count
is more than half of matrix
size.

Input : 1 2 3
        0 7 8
        5 0 7 
Output: No 

Para verificar si una array es una array dispersa, solo necesitamos verificar el número total de elementos que son iguales a cero. Si este recuento es mayor que (m * n)/2, devolvemos verdadero. 

Implementación:

C++

// CPP code to check if a matrix is
// sparse.
#include <iostream>
using namespace std;
 
const int MAX = 100;
 
bool isSparse(int array[][MAX], int m, int n)
{
    int counter = 0;
 
    // Count number of zeros in the matrix
    for (int i = 0; i < m; ++i)
        for (int j = 0; j < n; ++j)
            if (array[i][j] == 0)
                ++counter;
 
    return (counter > ((m * n) / 2));
}
 
// Driver Function
int main()
{
    int array[][MAX] = { { 1, 0, 3 },
                        { 0, 0, 4 },
                        { 6, 0, 0 } };
 
    int m = 3,
        n = 3;
    if (isSparse(array, m, n))
        cout << "Yes";
    else
        cout << "No";
}

Java

// Java code to check
// if a matrix is
// sparse.
 
import java.io.*;
 
class GFG {
     
    static int MAX = 100;
      
    static boolean isSparse(int array[][], int m, int n)
    {
        int counter = 0;
      
        // Count number of zeros in the matrix
        for (int i = 0; i < m; ++i)
            for (int j = 0; j < n; ++j)
                if (array[i][j] == 0)
                    ++counter;
      
        return (counter > ((m * n) / 2));
    }
      
    // Driver Function
    public static void main(String args[])
    {
        int array[][] = { { 1, 0, 3 },
                            { 0, 0, 4 },
                            { 6, 0, 0 } };
      
        int m = 3,
            n = 3;
        if (isSparse(array, m, n))
            System.out.println("Yes");
        else
            System.out.println("No");
    }
}
 
// This code is contributed by
// Nikita Tiwari.

Python3

# Python 3 code to check
# if a matrix is
# sparse.
 
MAX = 100
  
def isSparse(array,m, n) :
     
    counter = 0
  
    # Count number of zeros
    # in the matrix
    for i in range(0,m) :
        for j in range(0,n) :
            if (array[i][j] == 0) :
                counter = counter + 1
  
    return (counter >
            ((m * n) // 2))
 
# Driver Function
array = [ [ 1, 0, 3 ],
          [ 0, 0, 4 ],
          [ 6, 0, 0 ] ]
m = 3
n = 3
 
if (isSparse(array, m, n)) :
    print("Yes")
else :
    print("No")
     
     
# this code is contributed by
# Nikita tiwari

C#

// C# code to check if a matrix is
// sparse.
using System;
 
class GFG {
     
    static bool isSparse(int [,]array, int m,
                                       int n)
    {
        int counter = 0;
     
        // Count number of zeros in the matrix
        for (int i = 0; i < m; ++i)
            for (int j = 0; j < n; ++j)
                if (array[i,j] == 0)
                    ++counter;
     
        return (counter > ((m * n) / 2));
    }
     
    // Driver Function
    public static void Main()
    {
        int [,]array = { { 1, 0, 3 },
                         { 0, 0, 4 },
                         { 6, 0, 0 } };
     
        int m = 3,
            n = 3;
             
        if (isSparse(array, m, n))
            Console.WriteLine("Yes");
        else
            Console.WriteLine("No");
    }
}
 
// This code is contributed by vt_m.

PHP

<?php
// PHP code to check if a matrix is
// sparse.
 
$MAX = 100;
 
function isSparse( $array, $m, $n)
{
    $counter = 0;
 
    // Count number of zeros
    // in the matrix
    for ($i = 0; $i < $m; ++$i)
        for ($j = 0; $j < $n; ++$j)
            if ($array[$i][$j] == 0)
                ++$counter;
 
    return ($counter > (($m * $n) / 2));
}
 
    // Driver Code
    $array = array(array(1, 0, 3),
                   array(0, 0, 4),
                   array(6, 0, 0));
 
    $m = 3;
    $n = 3;
    if (isSparse($array, $m, $n))
        echo "Yes";
    else
        echo "No";
 
// This code is contributed by anuj_67.
?>

Javascript

<script>
    // Javascript code to check
    // if a matrix is
    // sparse.
     
    let MAX = 100;
        
    function isSparse(array, m, n)
    {
        let counter = 0;
        
        // Count number of zeros in the matrix
        for (let i = 0; i < m; ++i)
            for (let j = 0; j < n; ++j)
                if (array[i][j] == 0)
                    ++counter;
        
        return (counter > parseInt((m * n) / 2), 10);
    }
     
    let array = [ [ 1, 0, 3 ],
                   [ 0, 0, 4 ],
                   [ 6, 0, 0 ] ];
        
    let m = 3,
    n = 3;
    if (isSparse(array, m, n))
      document.write("Yes");
    else
      document.write("No");
     
</script>
Producción

Yes

Tiempo Complejidad: O(m*n) 
Espacio Auxiliar: O(1)

Este artículo es una contribución de Aarti_Rathi y Vineet Joshi . 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.

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

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *