leet-code/src/main/java/leetcode/editor/cn/ArrangingCoins.java
huangge1199@hotmail.com 8df9e1abb1 //441:排列硬币
2021-08-15 14:03:09 +08:00

59 lines
1.2 KiB
Java
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

//你总共有 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)
}