Common Elements in All Rows of a Given Matrix
Understanding the Problem
The goal is to find common elements present in all rows of a given matrix.
Method 1: Using Hashing
This method uses a hash table to count occurrences of elements.
def common_elements(matrix): count_map = {} # Count occurrences of each element in the first row for j in range(len(matrix[0])): count_map[matrix[0][j]] = 1 # Count occurrences in subsequent rows for i in range(1, len(matrix)): for j in range(len(matrix[i])): if matrix[i][j] in count_map and count_map[matrix[i][j]] == i: count_map[matrix[i][j]] += 1 # Print common elements print("Common elements:", end=" ") for key, value in count_map.items(): if value == len(matrix): print(key, end=" ") print() # Example usage matrix = [ [1, 2, 3, 4], [2, 3, 5, 6], [3, 4, 5, 7] ] common_elements(matrix)
Output:
Common elements: 3
Method 2: Using Sorting
This method sorts each row and finds common elements.
def common_elements(matrix): # Sort the first row matrix[0].sort() for i in range(1, len(matrix)): j, k = 0, 0 common = [] # Sort the current row matrix[i].sort() # Find common elements while j < len(matrix[0]) and k < len(matrix[i]): if matrix[0][j] == matrix[i][k]: common.append(matrix[0][j]) j += 1 k += 1 elif matrix[0][j] < matrix[i][k]: j += 1 else: k += 1 # Update the first row with common elements matrix[0] = common if not common: break # No common elements found # Print common elements print("Common elements:", end=" ") for value in matrix[0]: print(value, end=" ") print() # Example usage matrix = [ [1, 2, 3, 4], [2, 3, 5, 6], [3, 4, 5, 7] ] common_elements(matrix)
Output:
Common elements: 3
Method 3: Using Set Intersection
This method uses sets to find common elements across rows.
def common_elements(matrix): # Initialize the set with the first row common_set = set(matrix[0]) # Intersect with subsequent rows for i in range(1, len(matrix)): current_row_set = set(matrix[i]) common_set.intersection_update(current_row_set) # Print common elements print("Common elements:", end=" ") for elem in common_set: print(elem, end=" ") print() # Example usage matrix = [ [1, 2, 3, 4], [2, 3, 5, 6], [3, 4, 5, 7] ] common_elements(matrix)
Output:
Common elements: 3