441. 排列硬币

导读:本篇文章讲解 441. 排列硬币,希望对大家有帮助,欢迎收藏,转发!站点地址:www.bmabk.com

441. 排列硬币icon-default.png?t=M4ADhttps://leetcode.cn/problems/arranging-coins/

难度简单218

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

给你一个数字 n ,计算并返回可形成 完整阶梯行 的总行数。

示例 1:

441. 排列硬币

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

示例 2:

441. 排列硬币

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

提示:

  • 1 <= n <= 231 - 1

通过次数93,907提交次数205,273

常规写法:

时间复杂度O(n) 

class Solution {
    public int arrangeCoins(int n) {
        long ans = 0;
        for(int i=1;i<=n;i++)
        {
            if((ans+i)==n) return i;
            if((ans+i)>n) return i-1;
            ans+=i;
        }
        return 0;
    }
}

 441. 排列硬币

 方法二:简单迭代,逆向思维

class Solution {
    public int arrangeCoins(int n) {

        //简单迭代,逆向思维
        int i = 0;
        while(n>i) n -= ++i;
        return i;
    }
}

441. 排列硬币 

 

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

文章由极客之音整理,本文链接:https://www.bmabk.com/index.php/post/69087.html

(0)
小半的头像小半

相关推荐

极客之音——专业性很强的中文编程技术网站,欢迎收藏到浏览器,订阅我们!