首页 > 其他 > 详细

441. 排列硬币『简单』

时间:2020-05-19 22:23:11      阅读:63      评论:0      收藏:0      [点我收藏+]

题目来源于力扣(LeetCode

一、题目

441. 排列硬币

题目相关标签:数学、二分查找

技术分享图片

二、解题思路

  1. 据题意:第 k 行就必须正好有 k 枚硬币

  2. 定义变量 row,使 n 对 row 循环相减,row 的值依次为 1,2,3,4...

  3. 直到 n 小于 1 时(即 n 已经不能够加上该行组成完整的阶梯形状),则 n 可以排列 row - 1 行

三、代码实现

public static int arrangeCoins(int n) {
    int row = 1;
    while (n >= 1) {
        row += 1;
        // 每次遍历减行数
        n -= row;
    }
    return row - 1;
}

四、执行用时

技术分享图片

五、部分测试用例

public static void main(String[] args) {
    int num = 5;  // output:2
//    int num = 8;  // output:3

    int result = arrangeCoins(num);
    System.out.println(result);
}

441. 排列硬币『简单』

原文:https://www.cnblogs.com/zhiyin1209/p/12919980.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!