LeetCode 441——排列硬幣
阿新 • • 發佈:2021-01-27
技術標籤:LeetCode刷題
一、題目介紹
你總共有n枚硬幣,你需要將它們擺成一個階梯形狀,第k行就必須正好有k枚硬幣。
給定一個數字n,找出可形成完整階梯行的總行數。
n是一個非負整數,並且在32位有符號整型的範圍內。
示例 1: n = 5 硬幣可排列成以下幾行: ¤ ¤ ¤ ¤ ¤ 因為第三行不完整,所以返回2. 示例 2: n = 8 硬幣可排列成以下幾行: ¤ ¤ ¤ ¤ ¤ ¤ ¤ ¤ 因為第四行不完整,所以返回3.
來源:力扣(LeetCode)
連結:https://leetcode-cn.com/problems/arranging-coins
著作權歸領釦網路所有。商業轉載請聯絡官方授權,非商業轉載請註明出處。
二、解題思路
簡單的數學題,從1到N依次相加,如果相加的和sum與給定數值n之差大於N+1的話,則繼續進行相加,直到sum-n < N+1為止,返回N,詳見程式碼。
三、解題程式碼
class Solution { public: int arrangeCoins(int n) { int i = 0; while(n >= i) { n -= (i++); } return i-1; } };