Leetcode練習(Python):第441題:排列硬幣:你總共有 n 枚硬幣,你需要將它們擺成一個階梯形狀,第 k 行就必須正好有 k 枚硬幣。 給定一個數字 n,找出可形成完整階梯行的總行數。 n 是一個非負整數,並且在32位有符號整型的范圍內。


題目:

排列硬幣:你總共有 n 枚硬幣,你需要將它們擺成一個階梯形狀,第 k 行就必須正好有 k 枚硬幣。  給定一個數字 n,找出可形成完整階梯行的總行數。  n 是一個非負整數,並且在32位有符號整型的范圍內。

示例 1:

n = 5

硬幣可排列成以下幾行:
¤
¤ ¤
¤ ¤

因為第三行不完整,所以返回2.
示例 2:

n = 8

硬幣可排列成以下幾行:
¤
¤ ¤
¤ ¤ ¤
¤ ¤

因為第四行不完整,所以返回3.

思路:

較簡單。

程序:

class Solution:
    def arrangeCoins(self, n: int) -> int:
        if n == 0:
            return 0
        if n == 1:
            return 1
        if n == 2:
            return 1
        for index in range(1, n):
            if ((1 + index - 1) * (index - 1) // 2 < n) and ((1 + index) * (index) // 2 > n):
                return index - 1
            elif ((1 + index - 1) * (index - 1) // 2 < n) and ((1 + index) * (index) // 2 == n):
                return index

  


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



猜您在找 n枚硬幣問題(找假幣) Leetcode練習(Python):第448題:找到所有數組中消失的數字:給定一個范圍在 1 ≤ a[i] ≤ n ( n = 數組大小 ) 的 整型數組,數組中的元素一些出現了兩次,另一些只出現一次。 Leetcode練習(Python):數組類:第64題:給定一個包含非負整數的 m x n 網格,請找出一條從左上角到右下角的路徑,使得路徑上的數字總和為最小。 說明:每次只能向下或者向右移動一步。 [經典算法] 八枚硬幣 Leetcode練習(Python):回溯算法類:第77題:組合:給定兩個整數 n 和 k,返回 1 ... n 中所有可能的 k 個數的組合。 Leetcode練習(Python):數組類:第42題:給定 n 個非負整數表示每個寬度為 1 的柱子的高度圖,計算按此排列的柱子,下雨之后能接多少雨水。 Leetcode練習(Python):第258題:各位相加:給定一個非負整數 num,反復將各個位上的數字相加,直到結果為一位數。 有1分,2分,5分,10分四種硬幣,每種硬幣數量無限,給定n分錢(n<10000),求組合n分錢所需要的最少硬幣數? Leetcode練習(Python):數組類:第128題:給定一個未排序的整數數組,找出最長連續序列的長度。 要求算法的時間復雜度為 O(n)。 Leetcode練習(Python):數組類:第11題:給你 n 個非負整數 a1,a2,...,an,每個數代表坐標中的一個點 (i, ai) 。在坐標內畫 n 條垂直線,垂直線 i 的兩個端點分別為 (i, ai) 和 (i, 0)。找出其中的兩條線,使得它們與 x 軸共同構成的容器可以容納最多的水。
 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM