解題思路
是要 rob 當下這間以及上上間能 rob 的總和,還是不 rob 這間而取上間 rob 的總和?
程式碼
class Solution { public: int rob(vector<int>& nums) { if(nums.size() == 1) return nums[0]; if(nums.size() == 2) return max(nums[0], nums[1]); vector<int> money(nums.size(), 0); money[0] = nums[0], money[1] = max(nums[0], nums[1]); for(int i=2; i<nums.size(); i++) money[i] = max(money[i-1], nums[i] + money[i-2]); return money[nums.size() - 1]; } };
沒有留言:
張貼留言