java 668.乘法Table.java中的Kth最小数

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了java 668.乘法Table.java中的Kth最小数相关的知识,希望对你有一定的参考价值。

class Solution {
    public int findKthNumber(int m, int n, int k) {
        int low = 1, high = m * n;
        while (low <= high) {
            int mid = low + (high - low) / 2;
            int cnt = countEqualLess(m, n, mid);
            if (cnt < k) {
                low = mid + 1;
            } else {
                high = mid - 1;
            }
            
        }
        return low;
    }
    
    private int countEqualLess(int m, int n, int val) {
        int cnt = 0;
        for (int i = 1; i <= m; i++) {
            cnt += Math.min(n, val / i);
        }
        return cnt;
    }
}

以上是关于java 668.乘法Table.java中的Kth最小数的主要内容,如果未能解决你的问题,请参考以下文章

LeetCode:乘法表中的第K小的数668

LeetCode 668. 乘法表中第k小的数 / 462. 最少移动次数使数组元素相等 II / 436. 寻找右区间

[Leetcode]668.Kth Smallest Number in Multiplication Table

[二分查找] 乘法表中第k小的数

对比Java学Kotlin从 Java 中引用 Kotlin 类名自动带上 Kt 后缀

LeetCode 五月打卡-day18