Find the row with maximum number of 1s
In computer science, a row with the maximum number of 1s is a problem that is commonly encountered when working with binary matrices. Given a binary matrix (a matrix where each element is either 0 or 1), the goal is to find the row that has the most 1s.
One of the most straightforward algorithms for solving this problem is to loop through each row in the matrix, and count the number of 1s in that row. Keep track of the row with the maximum number of 1s found so far, and update it if a row is found with more 1s. Once all rows have been examined, the row with the maximum number of 1s can be returned.
This algorithm has a time complexity of O(nm), where n is the number of rows in the matrix, and m is the number of columns. However, there are more efficient algorithms that can solve this problem in O(nlogm) or even O(n+m) time complexity.
Code Solution
//C Program
//Find the row with maximum number of 1s
#include <stdio.h>
#define ROW 5
#define COL 4
//Method which are find a row which is contains
//max number of 1's element
void max_one_row(int matrix[][COL])
{
int length=0,result=0,row_sum=0;
for (int i = 0; i < ROW; ++i)
{
row_sum=0;
for (int j = 0; j < COL; ++j)
{
//Sum of row element
row_sum+=matrix[i][j];
}
if(row_sum > length)
{
length=row_sum;
result=i;
}
}
if(length==0)
{
printf("1s not found\n");
}
else
{
printf("Maximum number of 1's element exist in row %d\n",result );
}
}
int main()
{
//matrix which is contain 0's and 1's
int matrix[][COL]= {
{0, 0, 0, 1},
{0, 1, 1, 1},
{1, 1, 1, 1},
{0, 0, 0, 0},
{1, 0, 1, 0}
};
max_one_row(matrix);
return 0;
}
Output
Maximum number of 1's element exist in row 2
/*
C++ Program
Find the row with maximum number of 1s
*/
#include<iostream>
#define ROW 5
#define COL 4
using namespace std;
class MyMatrix {
public:
int rows;
int cols;
MyMatrix() {
//Get matrix size
this->rows = ROW;
this->cols = COL;
}
//Method which are find a row which is contains
//max number of 1's element
void max_one_row(int matrix[][COL]) {
int length = 0, result = 0, row_sum = 0;
for (int i = 0; i < this->rows; ++i) {
row_sum = 0;
for (int j = 0; j < this->cols; ++j) {
//Sum of row element
row_sum += matrix[i][j];
}
if (row_sum > length) {
//When getting a new max length row
length = row_sum;
result = i;
}
}
if (length == 0) {
cout << "1s not found\n";
} else {
cout << "Maximum number of 1's element exist in row " << result << "\n";
}
}
};
int main() {
int matrix[][COL] = {
{
0,
0,
0,
1
},
{
0,
1,
1,
1
},
{
1,
1,
1,
1
},
{
0,
0,
0,
0
},
{
1,
0,
1,
0
}
};
MyMatrix obj ;
obj.max_one_row(matrix);
return 0;
}
Output
Maximum number of 1's element exist in row 2
/*
Java Program
Find the row with maximum number of 1s
*/
public class MyMatrix {
public int rows;
public int cols;
public MyMatrix(int [][]matrix)
{
//Get matrix size
this.rows = matrix.length;
this.cols = matrix[0].length;
}
//Method which are find a row which is contains
//max number of 1's element
public void max_one_row(int [][]matrix)
{
int length=0,result=0,row_sum=0;
for (int i = 0; i < this.rows; ++i)
{
row_sum=0;
for (int j = 0; j < this.cols; ++j)
{
//Sum of row element
row_sum+=matrix[i][j];
}
if(row_sum > length)
{
//When getting a new max length row
length=row_sum;
result=i;
}
}
if(length==0)
{
System.out.print("1s not found\n");
}
else
{
System.out.print("Maximum number of 1's element exist in row "+result+"\n" );
}
}
public static void main(String[] args)
{
//matrix which is contain 0's and 1's
int [][]matrix= {
{0, 0, 0, 1},
{0, 1, 1, 1},
{1, 1, 1, 1},
{0, 0, 0, 0},
{1, 0, 1, 0}
};
MyMatrix obj = new MyMatrix(matrix);
obj.max_one_row(matrix);
}
}
Output
Maximum number of 1's element exist in row 2
/*
C# Program
Find the row with maximum number of 1s
*/
using System;
public class MyMatrix {
int rows;
int cols;
MyMatrix(int[,] matrix) {
//Get matrix size
this.rows = matrix.GetLength(0);
this.cols = matrix.GetLength(1);
}
//Method which are find a row which is contains
//max number of 1's element
public void max_one_row(int[,] matrix) {
int length = 0, result = 0, row_sum = 0;
for (int i = 0; i < this.rows; ++i) {
row_sum = 0;
for (int j = 0; j < this.cols; ++j) {
//Sum of row element
row_sum += matrix[i,j];
}
if (row_sum >length) {
//When getting a new max.Length row
length = row_sum;
result = i;
}
}
if (length == 0) {
Console.Write("1s not found\n");
} else {
Console.Write("Maximum number of 1's element exist in row " + result + "\n");
}
}
public static void Main(String[] args) {
int[,]
//matrix which is contain 0's and 1's
matrix = {
{
0,
0,
0,
1
},
{
0,
1,
1,
1
},
{
1,
1,
1,
1
},
{
0,
0,
0,
0
},
{
1,
0,
1,
0
}
};
MyMatrix obj = new MyMatrix(matrix);
obj.max_one_row(matrix);
}
}
Output
Maximum number of 1's element exist in row 2
<?php
/*
Php Program
Find the row with maximum number of 1s
*/
class MyMatrix {
public $rows;
public $cols;
function __construct($matrix) {
//Get matrix size
$this->rows = count($matrix);
$this->cols = count($matrix[0]);
}
//Method which are find a row which is contains
//max number of 1's element
public function max_one_row($matrix) {
$length = 0;
$result = 0;
$row_sum = 0;
for ($i = 0; $i < $this->rows; ++$i) {
$row_sum = 0;
for ($j = 0; $j < $this->cols; ++$j) {
//Sum of row element
$row_sum += $matrix[$i][$j];
}
if ($row_sum > $length) {
//When getting a new max length row
$length = $row_sum;
$result = $i;
}
}
if ($length == 0) {
echo("1s not found\n");
} else {
echo("Maximum number of 1's element exist in row ". $result ."\n");
}
}
}
function main() {
//matrix which is contain 0's and 1's
$matrix = array(array(0, 0, 0, 1), array(0, 1, 1, 1), array(1, 1, 1, 1), array(0, 0, 0, 0), array(1, 0, 1, 0));
$obj = new MyMatrix($matrix);
$obj->max_one_row($matrix);
}
main();
Output
Maximum number of 1's element exist in row 2
/*
Node Js Program
Find the row with maximum number of 1s
*/
class MyMatrix {
constructor(matrix) {
//Get matrix size
this.rows = matrix.length;
this.cols = matrix[0].length;
}
//Method which are find a row which is contains
//max number of 1's element
max_one_row(matrix) {
var length = 0;
var result = 0;
var row_sum = 0;
for (var i = 0; i < this.rows; ++i) {
row_sum = 0;
for (var j = 0; j < this.cols; ++j) {
//Sum of row element
row_sum += matrix[i][j];
}
if (row_sum > length) {
//When getting a new max length row
length = row_sum;
result = i;
}
}
if (length == 0) {
process.stdout.write("1s not found\n");
} else {
process.stdout.write("Maximum number of 1's element exist in row " + result + "\n");
}
}
}
function main(args) {
//matrix which is contain 0's and 1's
var matrix = [
[0, 0, 0, 1],
[0, 1, 1, 1],
[1, 1, 1, 1],
[0, 0, 0, 0],
[1, 0, 1, 0]
];
var obj = new MyMatrix(matrix);
obj.max_one_row(matrix);
}
main();
Output
Maximum number of 1's element exist in row 2
# Python 3 Program
# Find the row with maximum number of 1s
class MyMatrix :
def __init__(self, matrix) :
# Get matrix size
self.rows = len(matrix)
self.cols = len(matrix[0])
# Method which are find a row which is contains
# max number of 1's element
def max_one_row(self, matrix) :
length = 0
result = 0
row_sum = 0
i = 0
while (i < self.rows) :
row_sum = 0
j = 0
while (j < self.cols) :
# Sum of row element
row_sum += matrix[i][j]
j += 1
if (row_sum > length) :
# When getting a new max length row
length = row_sum
result = i
i += 1
if (length == 0) :
print("1s not found\n", end = "")
else :
print("Maximum number of 1's element exist in row ", result ,"\n", end = "")
def main() :
matrix = [
[0, 0, 0, 1],
[0, 1, 1, 1],
[1, 1, 1, 1],
[0, 0, 0, 0],
[1, 0, 1, 0]
]
obj = MyMatrix(matrix)
obj.max_one_row(matrix)
if __name__ == "__main__":
main()
Output
Maximum number of 1's element exist in row 2
# Ruby Program
# Find the row with maximum number of 1s
class MyMatrix
# Define the accessor and reader of class MyMatrix
attr_reader :rows, :cols
attr_accessor :rows, :cols
def initialize(matrix)
# Get matrix size
self.rows = matrix.length
self.cols = matrix[0].length
end
# Method which are find a row which is contains
# max number of 1's element
def max_one_row(matrix)
length = 0
result = 0
row_sum = 0
i = 0
while (i < self.rows)
row_sum = 0
j = 0
while (j < self.cols)
# Sum of row element
row_sum += matrix[i][j]
j += 1
end
if (row_sum > length)
# When getting a new max length row
length = row_sum
result = i
end
i += 1
end
if (length == 0)
print("1s not found\n")
else
print("Maximum number of 1's element exist in row ", result ,"\n")
end
end
end
def main()
matrix = [
[0, 0, 0, 1],
[0, 1, 1, 1],
[1, 1, 1, 1],
[0, 0, 0, 0],
[1, 0, 1, 0]
]
obj = MyMatrix.new(matrix)
obj.max_one_row(matrix)
end
main()
Output
Maximum number of 1's element exist in row 2
/*
Scala Program
Find the row with maximum number of 1s
*/
class MyMatrix(var rows: Int,var cols: Int) {
def this(matrix: Array[Array[Int]]) {
//Get matrix size
this( matrix.length,matrix(0).length);
}
//Method which are find a row which is contains
//max number of 1's element
def max_one_row(matrix: Array[Array[Int]]): Unit = {
var length: Int = 0;
var result: Int = 0;
var row_sum: Int = 0;
var i: Int = 0;
while (i < this.rows) {
row_sum = 0;
var j: Int = 0;
while (j < this.cols) {
//Sum of row element
row_sum += matrix(i)(j);
j += 1;
}
if (row_sum > length) {
//When getting a new max length row
length = row_sum;
result = i;
}
i += 1;
}
if (length == 0) {
print("1s not found\n");
} else {
print("Maximum number of 1's element exist in row " + result + "\n");
}
}
}
object Main {
def main(args: Array[String]): Unit = {
val matrix: Array[Array[Int]] = Array(
Array(0, 0, 0, 1),
Array(0, 1, 1, 1),
Array(1, 1, 1, 1),
Array(0, 0, 0, 0),
Array(1, 0, 1, 0));
val obj: MyMatrix = new MyMatrix(matrix);
obj.max_one_row(matrix);
}
}
Output
Maximum number of 1's element exist in row 2
/*
Java Program
Find the row with maximum number of 1s
*/
class MyMatrix {
var rows: Int;
var cols: Int;
init(_ matrix: [
[Int]
]) {
//Get matrix size
self.rows = matrix.count;
self.cols = matrix[0].count;
}
//Method which are find a row which is contains
//max number of 1's element
func max_one_row(_ matrix: [
[Int]
]) {
var length: Int = 0;
var result: Int = 0;
var row_sum: Int = 0;
var i: Int = 0;
while (i < self.rows) {
row_sum = 0;
var j: Int = 0;
while (j < self.cols) {
//Sum of row element
row_sum += matrix[i][j];
j += 1;
}
if (row_sum > length) {
//When getting a new max length row
length = row_sum;
result = i;
}
i += 1;
}
if (length == 0) {
print("1s not found\n", terminator: "");
} else {
print("Maximum number of 1's element exist in row ", result , "\n", terminator: "");
}
}
}
func main() {
let matrix: [
[Int]
] = [
[0, 0, 0, 1],
[0, 1, 1, 1],
[1, 1, 1, 1],
[0, 0, 0, 0],
[1, 0, 1, 0]
];
let obj: MyMatrix = MyMatrix(matrix);
obj.max_one_row(matrix);
}
main();
Output
Maximum number of 1's element exist in row 2
Please share your knowledge to improve code and content standard. Also submit your doubts, and test case. We improve by your feedback. We will try to resolve your query as soon as possible.
New Comment