Code
靈感來自於 House Robber III 用一個 size = 2 的 vector 去紀錄不同狀況的 return 值,這裡也是一樣,使用 house
& space
去紀錄當前格子有放房子和沒有放的方法數。
class Solution {
public:
int countHousePlacements(int n) {
long long mod = 1e9 + 7;
long long space = 1;
long long house = 1;
long long total = space + house;
for(int i = 2; i <= n; i++) {
house = space;
space = total;
total = (space + house) % mod;
}
return (total * total) % mod;
}
};