diff options
Diffstat (limited to 'cpp/213.cpp')
-rw-r--r-- | cpp/213.cpp | 41 |
1 files changed, 0 insertions, 41 deletions
diff --git a/cpp/213.cpp b/cpp/213.cpp deleted file mode 100644 index 1414222..0000000 --- a/cpp/213.cpp +++ /dev/null @@ -1,41 +0,0 @@ -#include <vector> - -using std::vector; - -class Solution -{ -public: - int rob(vector<int> &nums) - { - int count = nums.size(); - if (count == 0) - return 0; - - if (count == 1) - return nums.front(); - - int not_rob_prev = 0; - int rob_prev = nums.front(); - int not_rob_prev_and_not_rob_first = 0; - int rob_prev_and_not_rob_first = 0; - - for (int i = 1; i < count - 1; i++) - { - int not_rob_prev_cache = not_rob_prev; - int not_rob_prev_and_not_rob_first_cache = not_rob_prev_and_not_rob_first; - not_rob_prev = std::max(not_rob_prev_cache, rob_prev); - rob_prev = std::max(not_rob_prev_cache + nums[i], not_rob_prev); - not_rob_prev_and_not_rob_first = std::max(not_rob_prev_and_not_rob_first_cache, rob_prev_and_not_rob_first); - rob_prev_and_not_rob_first = std::max(not_rob_prev_and_not_rob_first_cache + nums[i], not_rob_prev_and_not_rob_first); - } - - // last houst - { - int not_rob_prev_and_not_rob_first_cache = not_rob_prev_and_not_rob_first; - not_rob_prev_and_not_rob_first = std::max(not_rob_prev_and_not_rob_first_cache, rob_prev_and_not_rob_first); - rob_prev_and_not_rob_first = std::max(not_rob_prev_and_not_rob_first_cache + nums[count - 1], not_rob_prev_and_not_rob_first); - } - - return std::max(rob_prev, rob_prev_and_not_rob_first); - } -}; |