Given a boolean 2D array, where each row is sorted. Find the row with the maximum number of 1s.
Examples:
Input: matrix = [[0, 1, 1, 1], [0, 0, 1, 1], [1, 1, 1, 1], [0, 0, 0, 0]] Output: 2
We have existing solution for this problem please refer Find the row with maximum number of 1’s. We can solve this problem in python quickly using map() function. Approach is very simple, find sum of all 1’s in each row and then print index of maximum sum in a list because row having maximum 1 will also have maximum sum.
Implementation:
Python3
# Function to find the row with maximum number of 1's def maxOnes( input ): # map sum function on each row of # given matrix # it will return list of sum of all one's # in each row, then find index of maximum element result = list ( map ( sum , input )) print (result.index( max (result))) # Driver program if __name__ = = "__main__" : input = [[ 0 , 1 , 1 , 1 ],[ 0 , 0 , 1 , 1 ],[ 1 , 1 , 1 , 1 ],[ 0 , 0 , 0 , 0 ]] maxOnes( input ) |
2
Complexity : O(M*N)