Количество столбцов с нечетным числом единиц
Для двумерной двоичной матрицы размером N * M задача состоит в том, чтобы найти количество столбцов, имеющих нечетное количество единиц .
Примеры:
Input: mat[][] = {
{0, 0, 1, 0},
{1, 0, 0, 1},
{1, 1, 1, 0}}
Output: 2
Column 2 and 4 are the only columns
having odd number of 1’s.Input: mat[][] = {
{1, 1, 0, 0, 1, 1},
{0, 1, 0, 1, 0, 0},
{1, 1, 1, 0, 1, 0}}
Output: 4
Рекомендуется: сначала попробуйте свой подход в {IDE}, прежде чем переходить к решению.
Подход: Найдите сумму всех столбцов матрицы по отдельности, столбцы с нечетной суммой - это столбцы с нечетным числом единиц.
Below is the implementation of the above approach:
C++
// C++ implementation of the approach#include <iostream>using namespace std;  const int col = 4;const int row = 3;  // Function to return the count of// columns having odd number of 1sint 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 codeint 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 approachclass GFG{static int col = 4;static int row = 3;  // Function to return the count of// columns having odd number of 1sstatic 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 codepublic 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 approachcol = 4row = 3  # Function to return the count of# columns having odd number of 1sdef 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 codearr = [[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
Вниманию читателя! Не прекращайте учиться сейчас. Освойте все важные концепции DSA с помощью самостоятельного курса DSA по приемлемой для студентов цене и будьте готовы к работе в отрасли. Чтобы завершить подготовку от изучения языка к DS Algo и многому другому, см. Полный курс подготовки к собеседованию .
Если вы хотите посещать живые занятия с отраслевыми экспертами, пожалуйста, обращайтесь к Geeks Classes Live и Geeks Classes Live USA.