Big Numbers in Python


Suppose we have a matrix, we have to find the total number of integers whose value is the largest in its row and column.

So, if the input is like

132
465
157

then the output will be 2 as 6 and 7 are valid.

To solve this, we will follow these steps −

  • mat := matrix

  • r_maxes := make a list of max elements of each row of mat

  • c_maxes := make a list of max elements of each column of mat

  • a := a new list

  • for r in range 0 to number of rows - 1, do

    • for c in range 0 to number of columns - 1, do

      • v := mat[r, c]

      • if r_maxes[r] is v and c_maxes[c] is v, then

        • insert v at the end of a

  • return size of a

Let us see the following implementation to get better understanding −

Example

 Live Demo

class Solution:
   def solve(self, matrix):
      mat = matrix
      trans_mat = list(zip(*matrix))
      print(mat, trans_mat)
      r_maxes = [max(row) for row in mat]
      c_maxes = [max(t_row) for t_row in trans_mat]
      a = []
      for r in range(len(mat)):
         for c in range(len(trans_mat)):
            v = mat[r][c]
            if (r_maxes[r], c_maxes[c]) == (v, v):
               a.append(v)
      return len(a)
ob = Solution()
matrix = [
   [1, 3, 2],
   [4, 6, 5],
   [1, 5, 7]
]
print(ob.solve(matrix))

Input

[[1, 3, 2], [4, 6, 5], [1, 5, 7]]

Output

2

Updated on: 02-Sep-2020

256 Views

Kickstart Your Career

Get certified by completing the course

Get Started
Advertisements