题目描述: 题目思路: 本题属于动态规划题目,考虑到如果只有一户人家,则必偷这户人家可以获得最高金额。如果房屋数大于等于两户人家时,构建dp数组:vector dp(nums.size(), 0)。dp[i]表示,对于前i+1户人家可偷窃到最高的金额。dp[0]=nums[0],对于前一户人家,必偷该户人家,才能获得最高金额;dp[1]=max(nums[0],nums[1]),对于前两户人家,为了不触发报警系统,只能选择最富有的人家进行偷窃。 从第三户人家开始,直到最后一户人家,dp[i]=max(dp[i-2]+nums[i],dp[i-1])的含义为:dp[i-1]表示要么第i-1+1...