function findCommonElementInMatrixRows(matrix: number[][]): number {
const map: Map<number, number> = new Map();
const rows: number = matrix.length;
const cols: number = matrix[0].length;
for (let i: number = 0; i < rows; i++) {
map.set(matrix[i][0], (map.get(matrix[i][0]) ?? 0) + 1);
for (let j: number = 1; j < cols; j++) {
if (matrix[i][j] !== matrix[i][j - 1]) {
const val = matrix[i][j];
map.set(val, (map.get(val) ?? 0) + 1);
}
}
}
for (const [key, count] of map.entries()) {
if (count === rows) {
return key;
}
}
return -1;
}
// Example usage
const matrix: number[][] = [
[1, 2, 3, 5, 36],
[4, 5, 7, 9, 10],
[5, 6, 8, 9, 18],
[1, 3, 5, 8, 24]
];
const result: number = findCommonElementInMatrixRows(matrix);
console.log(
result !== -1
? `Common element in all rows: ${result}`
: "No common element found in all rows."
);
/*
run:
"Common element in all rows: 5"
*/