LeetCode简单题之排列硬币
生活随笔
收集整理的這篇文章主要介紹了
LeetCode简单题之排列硬币
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
題目
你總共有 n 枚硬幣,并計劃將它們按階梯狀排列。對于一個由 k 行組成的階梯,其第 i 行必須正好有 i 枚硬幣。階梯的最后一行 可能 是不完整的。
給你一個數字 n ,計算并返回可形成 完整階梯行 的總行數。
示例 1:
輸入:n = 5
輸出:2
解釋:因為第三行不完整,所以返回 2 。
示例 2:
輸入:n = 8
輸出:3
解釋:因為第四行不完整,所以返回 3 。
提示:
1 <= n <= 2^31 - 1
來源:力扣(LeetCode)
解題思路
??這是一道比較簡單的題,類似于機器人能否返回原點,比賽的配對次數等 是可以模擬的。
class Solution:def arrangeCoins(self, n: int) -> int:s=0count=0while s<n:count+=1s+=countreturn count if s==n else count-1
??同時這也是一道非常經典的中學數學題——等差數列求和,解這個題實際上相當于求解一個方程:(1+x)*x/2=n。
class Solution:def arrangeCoins(self, n: int) -> int:return math.floor((math.sqrt(1+8*n)-1)/2)
總結
以上是生活随笔為你收集整理的LeetCode简单题之排列硬币的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: LeetCode简单题之只出现一次的数字
- 下一篇: LeetCode简单题之找到所有数组中消