问题描述 想象一下,你是一个小偷,准备去偷邻街的房子。每个房子里有一些钱,但是你不能同时偷相邻的两个房子。比如,如果你偷了第一间房子,就不能再偷第二间;如果偷了第二间,你就不能偷第一间和第三间。 给你一个数组,每个数字代表一个房子里有多少钱。我们的目标是找到一个偷钱的计划,让你偷到的钱最多。 解决方案 为了找到最好的计划,我们可以使用一种叫做动态规划的技巧。这个技巧可以帮助我们一步一步地解决问题,直到我们找到答案。 定义一个数组:我们用一个数组来存储每一步能偷到的最多钱。 dp[i]表示偷到第i间房子时,能偷到的最多钱。 决策:对于每一间房子,我们有两个选择: 不偷第i间房子,那...