题目:
解题思路:
计算 k 行有 n 个硬币用公式
再用二分法找行数。
int arrangeCoins(int n) {
long long l = 0, r = 500000;
long long ans = 0;
while (l <= r) {
long long mid = (l + r) / 2;
if (mid*(mid+1)/2 <= n) {
ans = mid;
l = mid + 1;
}
else r = mid - 1;
}
return ans;
}