首页 > 其他分享 >【LeeCode】441. 排列硬币

【LeeCode】441. 排列硬币

时间:2023-04-06 23:32:01浏览次数:52  
标签:硬币 int res arrangeCoins Solution public LeeCode new 441

【题目描述】

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

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

https://leetcode.cn/problems/arranging-coins/


【示例】

【LeeCode】441. 排列硬币_二分法

【LeeCode】441. 排列硬币_i++_02

【代码】二分法


【代码】leecode

import java.util.*;
// 2023-4-6

class Solution {
    public int arrangeCoins(int n) {
        int res = 0;
        while (n - res > 0)
            n -= ++res;
        return res;
    }
}

public class Main {
    public static void main(String[] args) {
        new Solution().arrangeCoins(5); // 输出:2
        new Solution().arrangeCoins(8); // 输出:3
        new Solution().arrangeCoins(3); // 输出:2
    }
}

【代码】admin

题外话: 这个题,我竟然基于debug做出来了,第一眼看完全想不到思路

import java.util.*;
// 2023-4-6

class Solution {
    public int arrangeCoins(int n) {
        // 如果是1, 则返回1即可
        if (n == 1) return 1;
        int index = 0;
        for (int i = 1; i <= n ; i++) {
            n -= i;
            if (n < 0) {
                return index - 1;
            }else if (n == 0){
                // 如果刚好为0, 则也要加1
                index++;
                return index;
            }
            index++;
        }
        return index;
    }
}
public class Main {
    public static void main(String[] args) {
        new Solution().arrangeCoins(5); // 输出:2
        new Solution().arrangeCoins(8); // 输出:3
        new Solution().arrangeCoins(3); // 输出:2
    }
}


标签:硬币,int,res,arrangeCoins,Solution,public,LeeCode,new,441
From: https://blog.51cto.com/u_13682316/6174264

相关文章

  • 四核iTOP4412开发板使用手册目录
    四核iTOP4412开发板使用手册目录......
  • 【LeeCode】2427. 公因子的数目
    【题目描述】给你两个正整数 a 和 b ,返回 a 和 b 的 公 因子的数目。如果 x 可以同时整除 a 和 b ,则认为 x 是 a 和 b 的一个 公因子 。 https://leetcode.cn/problems/number-of-common-factors/【示例】【代码】adminpackagecom.company;//2023-04-0......
  • 力扣-441. 排列硬币
    你总共有 n 枚硬币,并计划将它们按阶梯状排列。对于一个由k行组成的阶梯,其第i行必须正好有i枚硬币。阶梯的最后一行可能是不完整的。给你一个数字 n,计算并返回可形成完整阶梯行的总行数。应该首先判断数据源是否是有序的,先二分。varrs=ArrangeCoins(180428938......
  • 翻硬币 | 递推
     P8597[蓝桥杯2013省B]翻硬币-洛谷|计算机科学教育新生态(luogu.com.cn)  1#include<iostream>2#include<string>3usingnamespacestd;4#de......
  • python基础:split、join、replace、remove、del、pop、index小记python 字符串的split(
    这里总结了平时写脚本时经常用到的一些基础方法,做个记录1、split()函数可以基于分隔符将字符串分割成由若干子串组成的列表str.split(str="",num=string.count(str))str......
  • 【LeeCode】557. 反转字符串中的单词 III
    【题目描述】给定一个字符串 s ,你需要反转字符串中每个单词的字符顺序,同时仍保留空格和单词的初始顺序。【示例】【代码】adminpackagecom.company;//2023-03-23impo......
  • 【LeeCode】1616. 分割两个字符串得到回文串
    【题目描述】给你两个字符串 a 和 b ,它们长度相同。请你选择一个下标,将两个字符串都在 相同的下标 分割开。由 a 可以得到两个字符串: aprefix 和 asuffix ,满足......
  • LeeCode刷题记录——哈希表
    根本没学过这个东西,被薄纱,直接躺板板了,抑郁的时候垂死病中惊坐起,赶紧上来记一下笔记。题目:给定一个字符串s,请你找出其中不含有重复字符的最长子串的长度。评论区和官方......
  • P1441 砝码称重 状压+bitset的组合
    这道题最妙的是移入bitset,来统计能组成那些数令bitset<2010>S;一开始初始化S[0]=1对于w[i],S<<w[i]表示原本能组成的数加上w[i]后组成的新数但原本的数我们依旧是要的......
  • 【LeeCode】26. 删除有序数组中的重复项
    【题目描述】给你一个 升序排列 的数组 ​​nums​​​ ,请你​​ 原地​​ 删除重复出现的元素,使每个元素 只出现一次 ,返回删除后数组的新长度。元素的 相对顺序 ......