美文网首页
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