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