本文主要是介绍力扣668.乘法表中第k小的数,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
力扣668.乘法表中第k小的数
-
二分查找
- 是否有k个比mid小的数
-
class Solution {public:int findKthNumber(int m, int n, int k) {auto check = [&](int mid) -> bool{int res=0;int row = 1,col = n;while(row <= m){if(row * col <= mid){res += col;if(res >= k) return false;row ++;}else col --;}return true;};int l = 1,r = n * m;while(l<r){int mid = l + r + 1 >> 1;if(check(mid)) l = mid;else r = mid - 1;}return r + 1;}};
这篇关于力扣668.乘法表中第k小的数的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!