你总共有 n 枚硬币,你需要将它们摆成一个阶梯形状,第 k 行就必须正好有 k 枚硬币。
给定一个数字 n,找出可形成完整阶梯行的总行数。
n 是一个非负整数,并且在32位有符号整型的范围内。
class Solution:
def arrangeCoins(self, n: int) -> int:
import math
return math.floor( math.sqrt(1/4+2*n)-1/2 )
# import math
# x = (int)(math.sqrt(n))
# for i in range(x, x+100000):
# y = i//2*(i+1)if i % 2 == 0 else (i+1)//2*i
# if y == n:
# return i
# elif y > n:
# return i-1
# return 0
执行用时 : 36ms
内存消耗 : 14MB
题后反思:
#include
class Solution {
public:
int arrangeCoins(int n) {
long x = n;
return floor(sqrt(1.0/4+2*x)-1.0/2);
}
};
执行用时 : 4ms
内存消耗 : 8.3MB
题后反思:无
文中都是我个人的理解,如有错误的地方欢迎下方评论告诉我,我及时更正,大家共同进步