📜  奇数为1s的列数

📅  最后修改于: 2021-04-22 09:35:30             🧑  作者: Mango

给定一个N * M 2D二进制矩阵,任务是找到奇数为1s的列数。

例子:

方法:分别找到矩阵所有列的和,具有奇数和的列是奇数为1的列。

下面是上述方法的实现:

C++
// C++ implementation of the approach
#include 
using namespace std;
  
const int col = 4;
const int row = 3;
  
// Function to return the count of
// columns having odd number of 1s
int countOddColumn(int arr[row][col])
{
  
    // To store the sum of every column
    int sum[col] = { 0 };
  
    // For every column
    for (int i = 0; i < col; i++) {
  
        // Sum of all the element
        // of the current column
        for (int j = 0; j < row; j++) {
            sum[i] += arr[j][i];
        }
    }
  
    // To store the required count
    int count = 0;
  
    for (int i = 0; i < col; i++) {
  
        // If the sum of the current
        // column is odd
        if (sum[i] % 2 == 1) {
            count++;
        }
    }
  
    return count;
}
  
// Driver code
int main()
{
    int arr[row][col] = { { 0, 0, 1, 0 },
                          { 1, 0, 0, 1 },
                          { 1, 1, 1, 0 } };
  
    cout << countOddColumn((arr));
  
    return 0;
}


Java
// Java implementation of the approach
class GFG
{
static int col = 4;
static int row = 3;
  
// Function to return the count of
// columns having odd number of 1s
static int countOddColumn(int arr[][])
{
  
    // To store the sum of every column
    int []sum = new int[col];
  
    // For every column
    for (int i = 0; i < col; i++)
    {
  
        // Sum of all the element
        // of the current column
        for (int j = 0; j < row; j++) 
        {
            sum[i] += arr[j][i];
        }
    }
  
    // To store the required count
    int count = 0;
  
    for (int i = 0; i < col; i++)
    {
  
        // If the sum of the current
        // column is odd
        if (sum[i] % 2 == 1) 
        {
            count++;
        }
    }
    return count;
}
  
// Driver code
public static void main(String []args) 
{
    int arr[][] = {{ 0, 0, 1, 0 },
                   { 1, 0, 0, 1 },
                   { 1, 1, 1, 0 }};
  
    System.out.println(countOddColumn((arr)));
}
}
  
// This code is contributed by Rajput-Ji


Python3
# Python3 implementation of the approach
col = 4
row = 3
  
# Function to return the count of
# columns having odd number of 1s
def countOddColumn(arr):
  
    # To store the sum of every column
    sum = [0 for i in range(col)]
  
    # For every column
    for i in range(col):
  
        # Sum of all the element
        # of the current column
        for j in range(row):
            sum[i] += arr[j][i]
  
    # To store the required count
    count = 0
  
    for i in range(col):
  
        # If the sum of the current
        # column is odd
        if (sum[i] % 2 == 1):
            count += 1
  
    return count
  
# Driver code
arr = [[0, 0, 1, 0],
       [1, 0, 0, 1],
       [1, 1, 1, 0]]
  
print(countOddColumn((arr)))
  
# This code is contributed by Mohit Kumar


C#
// C# implementation of the approach 
using System;
  
class GFG 
{ 
    static int col = 4; 
    static int row = 3; 
      
    // Function to return the count of 
    // columns having odd number of 1s 
    static int countOddColumn(int [,]arr) 
    { 
      
        // To store the sum of every column 
        int []sum = new int[col]; 
      
        // For every column 
        for (int i = 0; i < col; i++) 
        { 
      
            // Sum of all the element 
            // of the current column 
            for (int j = 0; j < row; j++) 
            { 
                sum[i] += arr[j, i]; 
            } 
        } 
      
        // To store the required count 
        int count = 0; 
      
        for (int i = 0; i < col; i++) 
        { 
      
            // If the sum of the current 
            // column is odd 
            if (sum[i] % 2 == 1) 
            { 
                count++; 
            } 
        } 
        return count; 
    } 
      
    // Driver code 
    public static void Main() 
    { 
        int [,]arr = {{ 0, 0, 1, 0 }, 
                      { 1, 0, 0, 1 }, 
                      { 1, 1, 1, 0 }}; 
      
        Console.WriteLine(countOddColumn((arr))); 
    } 
}
  
// This code is contributed by kanugargng


输出:
2