美文网首页
排列硬币

排列硬币

作者: xialu | 来源:发表于2021-10-10 20:11 被阅读0次

来源:力扣(LeetCode)
链接:https://leetcode-cn.com/problems/arranging-coins

题目描述:

你总共有 n 枚硬币,并计划将它们按阶梯状排列。对于一个由 k 行组成的阶梯,其第 i 行必须正好有 i 枚硬币。阶梯的最后一行 可能 是不完整的。
给你一个数字 n ,计算并返回可形成 完整阶梯行 的总行数。

示例 1:

输入:n = 5
输出:2
解释:因为第三行不完整,所以返回 2 。

示例 2:

输入:n = 8
输出:3
解释:因为第四行不完整,所以返回 3 。

题目分析:
  1. 第i行必然有i枚硬币(i不为最后一行)
  2. 最后一行i的硬币数小于等于i
思路一:

从第一行开始累加,直到累加结果sum大于等于n说明到了最后一行

  • 如果sum等于n,累加的次数刚好是行数
  • 如果sum大于n,则累加次数-1是要求的结果(因为最后一行不完整,结果求完整阶梯行数)
代码实现:
class Solution {
    public int arrangeCoins(int n) {
        long sum = 0;
        int result = 0;
        while (sum < n) {
            result++;
            sum += result;  
        }
        return sum == n ? result : --result;
    }
}

相关文章

  • 排列硬币

    来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/arrang...

  • 【LeetCode通关全记录】441. 排列硬币

    【LeetCode通关全记录】441. 排列硬币 题目地址:441. 排列硬币[https://leetcode-...

  • 如何排列硬币?

    题目 你总共有 n 枚硬币,你需要将它们摆成一个阶梯形状,第 k 行就必须正好有 k 枚硬币。给定一个数字 n,找...

  • 441-排列硬币

    排列硬币 题目 你总共有n枚硬币,你需要将它们摆成一个阶梯形状,第k行就必须正好有k枚硬币。 给定一个数字n,找出...

  • 441. 排列硬币

    你总共有 n 枚硬币,你需要将它们摆成一个阶梯形状,第 k 行就必须正好有 k 枚硬币。 给定一个数字 n,找出可...

  • 441-排列硬币

    你总共有n枚硬币,你需要将它们摆成一个阶梯形状,第k行就必须正好有k枚硬币。给定一个数字n,找出可形成完整阶梯行的...

  • 441. 排列硬币

  • 【LeetCode】441. 排列硬币

    题目描述 你总共有 n 枚硬币,你需要将它们摆成一个阶梯形状,第 k 行就必须正好有 k 枚硬币。 给定一个数字 ...

  • leetcode 441. 排列硬币

    你总共有 n 枚硬币,你需要将它们摆成一个阶梯形状,第 k 行就必须正好有 k 枚硬币。 给定一个数字 n,找出可...

  • LeetCode-441-排列硬币

    排列硬币 题目描述:你总共有 n 枚硬币,你需要将它们摆成一个阶梯形状,第 k 行就必须正好有 k 枚硬币。给定一...

网友评论

      本文标题:排列硬币

      本文链接:https://www.haomeiwen.com/subject/rsxkoltx.html