[LeetCode] House Robber

Since we are not allowed to rob two adjacent houses, we keep two variables pre and cur. During the i-th loop, pre records the maximum profit that we do not rob the i - 1-th house and thus the current house (the i-th house) can be robbed while cur records the profit that we have robbed the i - 1-th house.

The code is as follows.

 1 class Solution {
 2 public: 
 3     int rob(vector<int>& nums) {
 4         int n = nums.size(), pre = 0, cur = 0;
 5         for (int i = 0; i < n; i++) {
 6             int temp = max(pre + nums[i], cur);
 7             pre = cur;
 8             cur = temp;
 9         }
10         return cur;
11     }
12 };

 

posted @ 2015-08-15 11:12  jianchao-li  阅读(157)  评论(0编辑  收藏  举报