class Solution {
public int arrangeCoins(int n) {
int left = 1, right = n;
while(left < right){
int mid = left + (right - left + 1)/2;
// 等差数列求和公式
if((long)mid * (mid + 1) <= (long)n*2){
left = mid;
}else{
right = mid - 1;
}
}
return left;
}
}
441.排列硬币
最新推荐文章于 2025-12-05 19:39:52 发布
本文介绍了一个经典的算法问题——硬币排列问题,通过使用二分查找和等差数列求和公式来解决。该方法能够在O(log n)的时间复杂度内找到能够完全排列的最大硬币数量。
300

被折叠的 条评论
为什么被折叠?



