8.28 - hard - 119

668. Kth Smallest Number in Multiplication Table
今天总结的比较麻木,因为题目都是竞赛做过的,有点思路又不完全有,基本上都是copy的答案,也没花太多时间去理解,脑袋也不怎么转动,唉,感觉进入一个低谷期了。

二分法, 因为条件比较强

class Solution(object):
    def findKthNumber(self, m, n, k):
        """
        :type m: int
        :type n: int
        :type k: int
        :rtype: int
        """
        def enough(x):
            return sum(min(x / i, n) for i in xrange(1, m+1)) >= k

        lo, hi = 1, m*n
        while lo < hi:
            mi = (lo + hi) / 2
            if not enough(mi):
                lo = mi + 1
            else:
                hi = mi
        return lo
        

你可能感兴趣的:(8.28 - hard - 119)