LeetCode 441. 排列硬币 解答

你总共有 n 枚硬币,你需要将它们摆成一个阶梯形状,第 k 行就必须正好有 k 枚硬币。

给定一个数字 n,找出可形成完整阶梯行的总行数。

n 是一个非负整数,并且在32位有符号整型的范围内。

解方程 X^2+X-2n = 0,注意 n 右移可能溢出。

class Solution {
public:
    int arrangeCoins(int n) {
        return (int)(-1 + sqrt(1 + (long)n << 3)) >> 1;
    }
};
发布了48 篇原创文章 · 获赞 29 · 访问量 9800

猜你喜欢

转载自blog.csdn.net/flyconley/article/details/102639419