1. 程式人生 > >[劍指offer] 10. 旋轉數組的最小數字

[劍指offer] 10. 旋轉數組的最小數字

旋轉 n-2 public 個推 margin off title itl describe

題目描述

我們可以用2*1的小矩形橫著或者豎著去覆蓋更大的矩形。請問用n個2*1的小矩形無重疊地覆蓋一個2*n的大矩形,總共有多少種方法?
思路: 利用dp[i]保存蓋2*i的矩形有多少種辦法。 通過擺前幾個推算出規律 1 時候就是 | 2 時候就是 | | 和 -- 擺n的時候就是兩種情況,一種是先擺1格,則有dp[n-1]種方法 另一種是先2格,則有dp[n-2]種方法。 於是推出dp[n]=d[n-1]+dp[n-2]
class Solution
{
public:
  int rectCover(int number)
  {
    int dp[9999] = {0};
    dp[
1] = 1; dp[2] = 2; for (int i = 3; i <= number; i++) { dp[i] = dp[i - 1] + dp[i - 2]; } return dp[number]; } };

[劍指offer] 10. 旋轉數組的最小數字