378. Kth Smallest Element in a Sorted Matrix

xiaoxiao2021-02-28  97

public class Solution { public boolean guess(int g,int[][] matrix, int k, int n){ int sum = 0; for(int i = 0; i < n; i++){ int L = 0; int R = n-1; int ans = -1; while(L <= R){ int mid = (L + R) / 2; if(matrix[i][mid] < g){ ans = mid; L = mid + 1; }else{ R = mid - 1; } } sum += (ans + 1); } return k > sum; } public int kthSmallest(int[][] matrix, int k) { int n = matrix.length; int L = matrix[0][0]; int R = matrix[n-1][n-1]; int ans = 0; while(L <= R){ int mid = (int)(((long)L + R )/2); if(guess(mid,matrix,k,n)){ ans = mid; L = mid + 1; }else{ R = mid - 1; } } return ans; } }
转载请注明原文地址: https://www.6miu.com/read-38219.html

最新回复(0)