Skip to content

Commit b2a7a6f

Browse files
Sean PrashadSean Prashad
authored andcommitted
Update 378_Kth_Smallest_Element_in_a_Sorted_Matrix.java
1 parent 02c89e3 commit b2a7a6f

File tree

1 file changed

+12
-19
lines changed

1 file changed

+12
-19
lines changed

K-Way Merge/378_Kth_Smallest_Element_in_a_Sorted_Matrix.java

Lines changed: 12 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -5,35 +5,28 @@ public int kthSmallest(int[][] matrix, int k) {
55
while (low <= high) {
66
int mid = low + (high - low) / 2;
77

8-
if (countLessThan(matrix, mid) < k) {
9-
low = mid + 1;
10-
} else {
8+
if (countLessThan(matrix, mid) >= k) {
119
high = mid - 1;
10+
} else {
11+
low = mid + 1;
1212
}
1313
}
1414

1515
return low;
1616
}
1717

18-
private int countLessThan(int[][] matrix, int k) {
19-
int count = 0;
18+
private int countLessThan(int[][] matrix, int target) {
19+
int row = matrix.length - 1, col = 0, result = 0;
2020

21-
for (int[] row : matrix) {
22-
int left = 0, right = row.length;
23-
24-
while (left < right) {
25-
int mid = left + (right - left) / 2;
26-
27-
if (row[mid] <= k) {
28-
left = mid + 1;
29-
} else {
30-
right = mid;
31-
}
21+
while (row >= 0 && col < matrix[0].length) {
22+
if (matrix[row][col] <= target) {
23+
result += row + 1;
24+
++col;
25+
} else {
26+
--row;
3227
}
33-
34-
count += left;
3528
}
3629

37-
return count;
30+
return result;
3831
}
3932
}

0 commit comments

Comments
 (0)