题目 代码 class Solution { public int arrangeCoins(int n) { int left = 1, right = n; while (left < right) { int mid = (right - left + 1) / 2 + left; if ((long) mid * (mid + 1) <= (long) 2 * n) { left = mid; } else { right = mid - 1; } } return left; } } 方法 利用公式 注意缩小范围的边界条件。