Количество столбцов с нечетным числом единиц
Для двумерной двоичной матрицы размером 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 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
Вниманию читателя! Не прекращайте учиться сейчас. Освойте все важные концепции DSA с помощью самостоятельного курса DSA по приемлемой для студентов цене и будьте готовы к работе в отрасли. Чтобы завершить подготовку от изучения языка к DS Algo и многому другому, см. Полный курс подготовки к собеседованию .
Если вы хотите посещать живые занятия с отраслевыми экспертами, пожалуйста, обращайтесь к Geeks Classes Live и Geeks Classes Live USA.