problem
441. Arranging Coins
solution1:
class Solution {
public:
int arrangeCoins(int n) {
long sum = 0;
int curLevel = 0;
while(sum<=n)
{
curLevel += 1;
sum += curLevel;
}
return (curLevel-1);
}
};
solution2:
class Solution {
public:
int arrangeCoins(int n) {
return (int)((sqrt(8*(long)n+1)-1)*0.5);//数学求和公式求解x,注意参数类型是否越界.
}
};
solution3:
class Solution {
public:
int arrangeCoins(int n) {
if(n<=1) return n;//err.
int left = 0, right = n, mid = 0;
while(left<right)
{
mid = left + (right-left)*0.5;
if((long)mid*(mid+1)*0.5 <= n) left = mid+1;
else right = mid;
}
return left-1;//err.
}
};
参考
1. Leetcode_441. Arranging Coins;
完