leetcode硬币放置问题
来源:互联网 发布:网络推广公司宣传语 编辑:程序博客网 时间:2024/06/04 18:11
有n歌硬币,第i层放置i个硬币,编程实现对于给定的n返回完成摆放的层数。
解:假设完成k层,共n歌硬币则:
(1+k)*k/2 = n
==〉
k+k*k = 2*n
k*k + k + 0.25 = 2*n + 0.25
(k + 0.5) ^ 2 = 2*n +0.25
k + 0.5 = sqrt(2*n + 0.25)
k = sqrt(2*n + 0.25) - 0.5
这里k是个浮点数,将其取为小于k的最大整数就可以
publicclass Solution {
publicintarrangeCoins(int n) {
return (int) (Math.sqrt(2*(long)n+0.25) - 0.5);
}}
0 0
- leetcode硬币放置问题
- Leetcode 441. Arranging Coins 硬币放置 解题报告
- 硬币问题
- 硬币问题
- 硬币问题
- 硬币问题
- 硬币问题
- 硬币问题
- 硬币问题
- 硬币问题
- 硬币问题
- 硬币问题
- 硬币问题
- 硬币问题
- 硬币问题
- 硬币问题
- 硬币问题
- 硬币问题
- 第十周项目2-二叉树遍历的递归算法
- Android当中的动画2—Tween动画
- mybatis逆向工程
- Android6.0动态申请权限的那些坑_优就业
- Iptables下MSS数据调整模块TCPMSS使用
- leetcode硬币放置问题
- JCA 规范
- 表单和ajax中的post请求&&后台获取数据方法(深度好文)
- 第十周 项目3 (1) 计算二叉树节点个数
- 博客
- nginx 访问问题及oracle连接问题
- 可控制导航下拉方向的jQuery下拉菜单代码
- java验证码生成(二)
- Qt使用MySQL库