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