你总共有 n 枚硬币,你需要将它们摆成一个阶梯形状,第 k 行就必须正好有 k 枚硬币。 给定一个数字 n,找出可形成完整阶梯行的总行数。 n 是一个非负整数,并且在32位有符号整型的范围内。 来源:力扣(LeetCode) 链接:https://leetcode-cn.com/problems/arranging-coins 12 ms 8.3 MB 0 ms 6.1 MB
1. 题目
示例 1: n = 5 硬币可排列成以下几行: ¤ ¤ ¤ ¤ ¤ 因为第三行不完整,所以返回2. 示例 2: n = 8 硬币可排列成以下几行: ¤ ¤ ¤ ¤ ¤ ¤ ¤ ¤ 因为第四行不完整,所以返回3.
著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。2. 解题
class Solution { public: int arrangeCoins(int n) { int i = 1, line = 0; long sum = 0; while(sum < n) { sum += i; ++i; ++line; } if(sum > n) return line-1; return line; } };
x(x+1)/2=n,
x=((8n+1)−1)/2class Solution { public: int arrangeCoins(int n) { long x = (pow(1+(long(n)<<3),0.5)-1)/2; long sum = x*(x+1)/2; if(sum > n) return x-1; return x; } };
本网页所有视频内容由 imoviebox边看边下-网页视频下载, iurlBox网页地址收藏管理器 下载并得到。
ImovieBox网页视频下载器 下载地址: ImovieBox网页视频下载器-最新版本下载
本文章由: imapbox邮箱云存储,邮箱网盘,ImageBox 图片批量下载器,网页图片批量下载专家,网页图片批量下载器,获取到文章图片,imoviebox网页视频批量下载器,下载视频内容,为您提供.
阅读和此文章类似的: 全球云计算