java solution
class Solution {
    public int counter(int[][] matrix,int k,int mid){
        int r = matrix.length;
        int c = matrix[0].length;
        int count = 0;
        for(int i=0;i<r;i++){
            for(int j=c-1;j>=0;j=j-1){
                if(matrix[i][j]<=mid){
                    count=count +j+1;
                    break;
                }
            }
        }
        return count;
    }
    public int kthSmallest(int[][] matrix, int k) {
    int r = matrix.length;
    int c = matrix[0].length;
    int l = matrix[0][0];
    int h = matrix[r-1][c-1];
        while(l<h){
            int mid = ((h-l)/2+l);
            int count = counter(matrix,k,mid);
            if(count>=k){
                h=mid;
            }else{
                l=mid+1;
            }
        }
    return l;
    }
}
Comments (1)