Matrix Median

Naive Approach: Extract into Linear Array and Sort

int Solution::findMedian(vector<vector<int> > &A) {
    vector<int> linear;
    for(const vector<int> &row: A)
        for(const int &x: row)
            linear.push_back(x);

    sort(linear.begin(), linear.end());

    int n = linear.size();

    if(n & 1)
        return linear[n / 2];
    else 
        return (linear[n / 2 - 1] + linear[n / 2]) / 2;
}

Time Complexity: O(n)O(n)

Space Complexity: O(n)O(n)

Time Complexity: O(logn)O(\log n)

Space Complexity: O(1)O(1)

Last updated