How to find the row with maximum number of 1’s in sorted rows binary digits matrix with C

1 Answer

0 votes
#include <stdio.h>

#define ROWS 5
#define COLS 6

int FindRowWithMaximumOnes(int matrix[][COLS]) {
    int rows = ROWS;
    int cols = COLS;

    int row_index = -1;

    int i = 0, j = cols - 1;

    while (i <= rows - 1 && j >= 0) {
        if (matrix[i][j]) {
            j--, row_index = i;
        }
        else {
            i++; // next row
        }
    }

    return row_index;
}

int main()
{
    int matrix[ROWS][COLS] =
    {
        { 0, 0, 0, 0, 1, 1 },
        { 0, 0, 1, 1, 1, 1 },
        { 0, 0, 0, 0, 0, 0 },
        { 0, 1, 1, 1, 1, 1 },
        { 0, 0, 0, 1, 1, 1 }
    };


    printf("Row index = %d", FindRowWithMaximumOnes(matrix));
}



/*
run:

Row index = 3

*/

 



answered Sep 24, 2022 by avibootz
...