House Robber (LeetCode)
Question:
https://leetcode.com/problems/house-robber/
解答:
DP.
maxProfit[i] = max(maxProfit[i-1], maxProfit[i-2]+number[i]);
class Solution { public: int rob(vector<int> &num) { if (num.size() == 0) return 0; std::vector<int> maxProfit(num.size(), 0); for (int i = 0; i < num.size(); i++) { maxProfit[i] = num[i]; if (i >= 2) maxProfit[i] += maxProfit[i-2]; if (i >= 1 && maxProfit[i-1] > maxProfit[i]) maxProfit[i] = maxProfit[i-1]; } return maxProfit[num.size()-1]; } };
浙公网安备 33010602011771号