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刪除。



 
粵ICP備18138465號   © 2018-2026 CODEPRJ.COM