美文网首页
Swift ~ 乘法表中第K小的数

Swift ~ 乘法表中第K小的数

作者: 派大星的博客 | 来源:发表于2019-02-15 17:17 被阅读0次
func findKthNumber(_ m: Int, _ n: Int, _ k: Int) -> Int {
    var left = 1
    var right = m * n
    while left < right {
        let mid = (left + right) / 2
        var count = 0
        
        var i = 1 // 计算每一行比mid小的元素个数之和 与 k 的大小关系
        
        while i <= m {
            let tmp = i * n < mid ? n : mid / i
            count += tmp
            i += 1
        }
        
        if count < k {
            left = mid + 1
        } else {
            right = mid
        }
    }
    return left
}

相关文章

网友评论

      本文标题:Swift ~ 乘法表中第K小的数

      本文链接:https://www.haomeiwen.com/subject/ucemeqtx.html