Kth Smallest Element in a Sorted Matrix

题目来源
一个矩阵数组,从左到右,从上到下排好序。求第k大。
没想到怎么做。
然后看了讨论区。
用二分,每次都计算出小于等于mid的个数,

class Solution {
public:
    int kthSmallest(vector>& matrix, int k) {
        int n = matrix.size();
        int l = matrix[0][0], r = matrix[n-1][n-1], mid = 0;
        while (l < r) {
            mid = (l + r) / 2;
            int j = n - 1, cnt = 0;
            for (int i=0; i= 0 && matrix[i][j] > mid)
                    j--;
                cnt += j + 1;
            }
            if (cnt < k)
                l = mid + 1;
            else
                r = mid;
        }
        return l;
    }
};

你可能感兴趣的:(Kth Smallest Element in a Sorted Matrix)