LeetCode 動態規劃(初級階段)

2021-10-04 21:53:02 字數 2435 閱讀 7472

509.斐波那契數

斐波那契數,通常用 f(n) 表示,形成的序列稱為斐波那契數列。該數列由 0 和 1 開始,後面的每一項數字都是前面兩項數字的和。也就是:

f(0) = 0, f(1) = 1

f(n) = f(n - 1) + f(n - 2), 其中 n > 1.

給定 n,計算 f(n)。

示例 1:

輸入:2

輸出:1

解釋:f(2) = f(1) + f(0) = 1 + 0 = 1.

示例 2:

輸入:3

輸出:2

解釋:f(3) = f(2) + f(1) = 1 + 1 = 2.

示例 3:

輸入:4

輸出:3

解釋:f(4) = f(3) + f(2) = 2 + 1 = 3.

0 ≤ n ≤ 30

class solution 

return dp[n];

}}

70.爬樓梯

假設你正在爬樓梯。需要 n 階你才能到達樓頂。

每次你可以爬 1 或 2 個台階。你有多少種不同的方法可以爬到樓頂呢?

注意:給定 n 是乙個正整數。

示例 1:

輸入: 2

輸出: 2

解釋: 有兩種方法可以爬到樓頂。

1 階 + 1 階

2 階示例 2:

輸入: 3

輸出: 3

解釋: 有三種方法可以爬到樓頂。

1 階 + 1 階 + 1 階

1 階 + 2 階

2 階 + 1 階

class solution else 

return dp[n];}}

}

08.11.硬幣

硬幣。給定數量不限的硬幣,幣值為25分、10分、5分和1分,編寫**計算n分有幾種表示法。(結果可能會很大,你需要將結果模上1000000007)

示例1:

輸入: n = 5

輸出:2

解釋: 有兩種方式可以湊成總金額:

5=55=1+1+1+1+1

示例2:

輸入: n = 10

輸出:4

解釋: 有四種方式可以湊成總金額:

10=10

10=5+5

10=5+1+1+1+1+1

10=1+1+1+1+1+1+1+1+1+1

說明:注意:

你可以假設:

0 <= n (總金額) <= 1000000

class solution ;

int dp = new int[n+1];

dp[0] = 1;

for(int i = 0; i < 4; i++)

} return dp[n];

}}

322.零錢兌換i

給定不同面額的硬幣 coins 和乙個總金額 amount。編寫乙個函式來計算可以湊成總金額所需的最少的硬幣個數。如果沒有任何一種硬幣組合能組成總金額,返回 -1。

示例 1:

輸入: coins = [1, 2, 5], amount = 11

輸出: 3

解釋: 11 = 5 + 5 + 1

示例 2:

輸入: coins = [2], amount = 3

輸出: -1

說明:你可以認為每種硬幣的數量是無限的。

class solution 

} return (dp[amount] == amount+1) ? -1 : dp[amount];

}}

518.零錢兌換ii

給定不同面額的硬幣和乙個總金額。寫出函式來計算可以湊成總金額的硬幣組合數。假設每一種面額的硬幣有無限個。

示例 1:

輸入: amount = 5, coins = [1, 2, 5]

輸出: 4

解釋: 有四種方式可以湊成總金額:

5=55=2+2+1

5=2+1+1+1

5=1+1+1+1+1

示例 2:

輸入: amount = 3, coins = [2]

輸出: 0

解釋: 只用面額2的硬幣不能湊成總金額3。

示例 3:

輸入: amount = 10, coins = [10]

輸出: 1

注意:你可以假設:

0 <= amount (總金額) <= 5000

1 <= coin (硬幣面額) <= 5000

硬幣種類不超過 500 種

結果符合 32 位符號整數

class solution 

} return dp[amount];

}}

Leetcode 初級演算法 動態規劃

二級標題格式 章節內題號 題庫內題號 題目標題 這一章節學的不是很好 我的思路 先想了乙個遞迴的解法 發現跑的非常慢 才意識到需要乙個動態規劃的解法 遞迴 12s 巨慢 public intclimbstairs int n 動態規劃 全陣列 public intclimbstairs int n ...

LeetCode探索初級演算法 動態規劃

今天在leetcode上做了幾個簡單的動態規劃的題目,也算是對動態規劃有個基本的了解了。現在對動態規劃這個演算法做乙個簡單的總結。動態規劃英文 dynamic programming,是求解決策過程最優化的數學方法,後來沿用到了程式設計領域。動態規劃的大致思路是把乙個複雜的問題轉化成乙個分階段逐步遞...

01串 動態規劃初級

描述 acm的zyc在研究01串,他知道某一01串的長度,但他想知道不含有 11 子串的這種長度的01串共有多少個,他希望你能幫幫他。注 01串的長度為2時,有3種 00,01,10。輸入 第一行有乙個整數n 0 輸出輸出不含有 11 子串的這種長度的01串共有多少個,佔一行。樣例輸入 2 23 樣...