1380 - Lucky Numbers in a Matrix
JAVA
class Solution { public List<Integer> luckyNumbers(int[][] matrix) { int m = matrix.length, n = matrix[0].length; int[] rows = new int[m]; int[] cols = new int[n]; Arrays.fill(rows, 1 << 30); for (int i = 0; i < m; ++i) { for (int j = 0; j < n; ++j) { rows[i] = Math.min(rows[i], matrix[i][j]); cols[j] = Math.max(cols[j], matrix[i][j]); } } List<Integer> ans = new ArrayList<>(); for (int i = 0; i < m; ++i) { for (int j = 0; j < n; ++j) { if (rows[i] == cols[j]) { ans.add(rows[i]); } } } return ans; } }
C++
class Solution { public: vector<int> luckyNumbers(vector<vector<int>>& matrix) { int m = matrix.size(), n = matrix[0].size(); int rows[m]; int cols[n]; memset(rows, 0x3f, sizeof(rows)); memset(cols, 0, sizeof(cols)); for (int i = 0; i < m; ++i) { for (int j = 0; j < n; ++j) { rows[i] = min(rows[i], matrix[i][j]); cols[j] = max(cols[j], matrix[i][j]); } } vector<int> ans; for (int i = 0; i < m; ++i) { for (int j = 0; j < n; ++j) { if (rows[i] == cols[j]) { ans.push_back(rows[i]); } } } return ans; } };
Comments
Post a Comment