# Leetcode [No. 198] House Robber (MEDIUM) + 2023/01/21 Daily Challenge + 2025/04/05 Second solved by Neetcode150 ## 題目 https://leetcode.com/problems/house-robber/description/?envType=daily-question&envId=2024-01-23 ## 思路 + 這個解法.... ```c++ class Solution { public: int rob(vector<int>& nums) { if(nums.size() == 1) { return nums[0]; } vector<int> dp(nums.size(),0); dp[0] = nums[0]; dp[1] = max(dp[0], nums[1]); for(int i = 2 ; i < nums.size();i++) { dp[i] = max(dp[i-1], nums[i] + dp[i-2]); } return dp[nums.size()-1]; } }; ``` ### 解法分析 + time complexity: O(nlgn) ### 執行結果  --- ```c++= class Solution { public: int rob(vector<int>& nums) { // This table record that for every ith house, what is the maximum money that can get. int n = nums.size(); if (n == 1) return nums[0]; if (n == 2) return max(nums[0], nums[1]); int dp[101] = {}; dp[0] = nums[0]; dp[1] = max(nums[0], nums[1]); for (int i = 2; i < nums.size(); i++) { dp[i] = max(dp[i-2]+nums[i], dp[i-1]); } return dp[nums.size()-1]; } }; ``` 
×
Sign in
Email
Password
Forgot password
or
By clicking below, you agree to our
terms of service
.
Sign in via Facebook
Sign in via Twitter
Sign in via GitHub
Sign in via Dropbox
Sign in with Wallet
Wallet (
)
Connect another wallet
New to HackMD?
Sign up