leet-code/src/main/java/leetcode/editor/cn/ArrangingCoins.java

59 lines
1.2 KiB
Java
Raw Normal View History

2021-08-15 14:03:09 +08:00
//你总共有 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)
}