1. 解题思路
这一题的话本质上算是一个数学题,具体就是:
- 已知: ( 1 + x ) ( 1 + y ) ≥ k (1+x)(1+y) \geq k (1+x)(1+y)≥k,求 x + y x+y x+y的最小值。
显然有基本不等式:
[ ( x + 1 ) + ( y + 1 ) 2 ] 2 ≥ ( x + 1 ) ( y + 1 ) ≥ k [\frac{(x+1)+(y+1)}{2}]^2 \geq (x+1)(y+1) \geq k [2(x+1)+(y+1)]2≥(x+1)(y+1)≥k
当 x = y x=y x=y时取到最小值,因此,我们只需要令 x , y x, y x,y尽可能相同即可,因此,我们就可以直接求得 x , y x, y x,y的值了。
2. 代码实现
给出python代码实现如下:
class Solution:
def minOperations(self, k: int) -> int:
t = math.ceil(math.sqrt(k))
p = math.ceil(k / t)
return t-1 + p-1
提交代码评测得到:耗时43ms,占用内存16.6MB。