Welcome to the daily solutions of our PROBLEM OF THE DAY (POTD). We will discuss the entire problem step-by-step and work towards developing an optimized solution. This will not only help you brush up on your concepts of Matrix but will also help you build up problem-solving skills.
C++
class Solution {
columnWithMaxZeros(arr, N) {
// Initialize variables to keep track of the maximum count and the corresponding column index.
let max_count = 0;
let ans = -1;
// Iterate over each column.
for (let i = 0; i < N; i++) {
// Initialize count for the current column.
let count = 0;
// Iterate over each row in the current column.
for (let j = 0; j < N; j++) {
// Counting zeros in the current column.
if (arr[j][i] === 0) {
count++;
}
}
// Update max_count and ans if the current column has more zeros.
if (count > max_count) {
max_count = count;
ans = i;
}
}
// Return the column index with the maximum number of zeros.
return ans;
}
} |
Java
class Solution {
int columnWithMaxZeros( int arr[][], int N)
{
int idx = - 1 , val = 0 ;
for ( int j = 0 ; j < N; j++) {
int sum = 0 ;
for ( int i = 0 ; i < N; i++) {
sum += 1 - arr[i][j];
}
if (val < sum) {
val = sum;
idx = j;
}
}
return idx;
}
} |
Python3
class Solution:
def columnWithMaxZeros( self , arr, N):
max_count = 0
ans = - 1
for i in range (N):
count = 0
for j in range (N):
# Counting zeroes
if arr[j][i] = = 0 :
count + = 1
# Updating max_count and ans as required
if count > max_count:
max_count = count
ans = i
return ans
|
C#
using System;
using System.Collections.Generic;
class Solution
{ /*
* Function to find the column with the maximum number of zeros
* N: Number of rows and columns in the array
*/
public int ColumnWithMaxZeros(List<List< int >> arr, int N)
{
// Initialize variables to store the maximum count of zeros and the corresponding column index
int maxCount = 0, columnIndexWithMaxZeros = -1;
// Iterate over each column
for ( int i = 0; i < N; i++)
{
// Initialize count for zeros in the current column
int count = 0;
// Iterate over each row in the current column
for ( int j = 0; j < N; j++)
{
// Counting zeros in the current column
if (arr[j][i] == 0)
{
count++;
}
}
// Update maxCount and columnIndexWithMaxZeros if the current column has more zeros
if (count > maxCount)
{
maxCount = count;
columnIndexWithMaxZeros = i;
}
}
// Return the column index with the maximum number of zeros
return columnIndexWithMaxZeros;
}
} |
Javascript
class Solution { columnWithMaxZeros(arr, N) {
// Initialize variables to keep track of the maximum count and the corresponding column index.
let maxCount = 0;
let ans = -1;
// Iterate over each column.
for (let i = 0; i < N; i++) {
// Initialize count for the current column.
let count = 0;
// Iterate over each row in the current column.
for (let j = 0; j < N; j++) {
// Counting zeros in the current column.
if (arr[j][i] === 0) {
count++;
}
}
// Update maxCount and ans if the current column has more zeros.
if (count > maxCount) {
maxCount = count;
ans = i;
}
}
// Return the column index with the maximum number of zeros.
return ans;
}
} |
Time Complexity: O(N X N), where N is the number of rows or columns in the matrix
Auxiliary Space: O(1)