59 lines
1.2 KiB
Java
59 lines
1.2 KiB
Java
//你总共有 n 枚硬币,你需要将它们摆成一个阶梯形状,第 k 行就必须正好有 k 枚硬币。
|
||
//
|
||
// 给定一个数字 n,找出可形成完整阶梯行的总行数。
|
||
//
|
||
// n 是一个非负整数,并且在32位有符号整型的范围内。
|
||
//
|
||
// 示例 1:
|
||
//
|
||
//
|
||
//n = 5
|
||
//
|
||
//硬币可排列成以下几行:
|
||
//¤
|
||
//¤ ¤
|
||
//¤ ¤
|
||
//
|
||
//因为第三行不完整,所以返回2.
|
||
//
|
||
//
|
||
// 示例 2:
|
||
//
|
||
//
|
||
//n = 8
|
||
//
|
||
//硬币可排列成以下几行:
|
||
//¤
|
||
//¤ ¤
|
||
//¤ ¤ ¤
|
||
//¤ ¤
|
||
//
|
||
//因为第四行不完整,所以返回3.
|
||
//
|
||
// Related Topics 数学 二分查找
|
||
// 👍 113 👎 0
|
||
|
||
package leetcode.editor.cn;
|
||
|
||
//441:排列硬币
|
||
class ArrangingCoins {
|
||
public static void main(String[] args) {
|
||
//测试代码
|
||
Solution solution = new ArrangingCoins().new Solution();
|
||
}
|
||
|
||
//力扣代码
|
||
//leetcode submit region begin(Prohibit modification and deletion)
|
||
class Solution {
|
||
public int arrangeCoins(long n) {
|
||
if(n==0){
|
||
return 0;
|
||
}
|
||
double number = (Math.sqrt(1+8*n)-1)/2;
|
||
|
||
return (int)(Math.floor(number));
|
||
}
|
||
}
|
||
//leetcode submit region end(Prohibit modification and deletion)
|
||
|
||
} |