你總共有 n 枚硬幣,你需要將它們擺成乙個階梯形狀,第 k 行就必須正好有 k 枚硬幣。
給定乙個數字 n,找出可形成完整階梯行的總行數。
n 是乙個非負整數,並且在32位有符號整型的範圍內。
示例 1:
n = 5
硬幣可排列成以下幾行:
¤¤ ¤
¤ ¤因為第三行不完整,所以返回2.
示例 2:
n = 8
硬幣可排列成以下幾行:
¤¤ ¤
¤ ¤ ¤
¤ ¤因為第四行不完整,所以返回3.
思路分析:不難發現每一行比上一行多乙個(完整的行),這是乙個不長為1的等差數列,我們可以直接使用等差求和公式解出項數(向下取整),也可以使用二分法直接進行搜尋。
方法一:公式法。時間複雜度o(1)
class solution
};
方法二:蠻力法。(時間複雜度o(n))
class solution
return row - 1;}};
方法三:二分搜尋法。時間複雜度o(log2n)
class solution
else
}//最後需要進行最後一次判斷
leetcode 排列硬幣
你總共有 n 枚硬幣,你需要將它們擺成乙個階梯形狀,第 k 行就必須正好有 k 枚硬幣。給定乙個數字 n,找出可形成完整階梯行的總行數。n 是乙個非負整數,並且在32位有符號整型的範圍內。示例1 n 5 硬幣可排列成以下幾行 第一行 第二行 因為第三行不完整,所以返回2.按照題的意思是n枚硬幣是按照...
Leetcode日記 322 換硬幣
給定不同面額的硬幣 coins 和乙個總金額 amount。編寫乙個函式來計算可以湊成總金額所需的最少的硬幣個數。如果沒有任何一種硬幣組合能組成總金額,返回 1。舉例 輸入 coins 1,2,5 amount 11 輸出 3 解釋 11 5 5 1 我們仍採取上次說的回溯轉動態規劃,來慢慢熟悉動態...
Leetcode第441題 排列硬幣
你總共有 n 枚硬幣,你需要將它們擺成乙個階梯形狀,第 k 行就必須正好有 k 枚硬幣。給定乙個數字 n,找出可形成完整階梯行的總行數。n 是乙個非負整數,並且在32位有符號整型的範圍內。示例 1 n 5 硬幣可排列成以下幾行 因為第三行不完整,所以返回2.示例 2 n 8 硬幣可排列成以下幾行 因...