LeetCode 排序硬幣

2021-09-13 18:22:03 字數 855 閱讀 6450

你總共有 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 硬幣可排列成以下幾行 因...