タイトル説明
我々は、2使用できる横の小さな四角形1または垂直より大きな長方形を覆います。N 2の使用する大きな長方形2 * n個の重複のない小さな四角形1カバレッジ、どのように多くの方法の合計は?
思考
フィボナッチ数に合わせて
参照コード
public class Solution {
public int RectCover(int target) {
if (target == 0)
return 0;
if (target == 1)
return 1;
if (target == 2)
return 2;
// f(1) = 1;
// f(2) = 2;
// f(3) = f(1) + f(2)
int[] dp = new int[target + 1];
dp[1] = 1;
dp[2] = 2;
for (int i = 3; i <= target; i++) {
dp[i] = dp[i - 1] + dp[i - 2];
}
return dp[target];
}
}