中国住房和城乡建设部网站一级建造师网,廊坊网站建设搭建,室内设计网站平面案例,网络服务器机柜厂家题目链接#xff1a;打家劫舍 定义一个数组 dp#xff0c;其中 dp[i] 表示从第 0 间房子到第 i 间房子#xff08;包括第 i 间#xff09;能够偷窃到的最高金额。 对于第 i 间房子有两种选择#xff0c;偷或不偷#xff1a; 偷就不能偷第 i - 1 间房子#xff1a; dp[i]…题目链接打家劫舍 定义一个数组 dp其中 dp[i] 表示从第 0 间房子到第 i 间房子包括第 i 间能够偷窃到的最高金额。 对于第 i 间房子有两种选择偷或不偷 偷就不能偷第 i - 1 间房子 dp[i] dp[i -2] num[i]; 不偷就可以偷第 i - 1间房子 dp[i] dp[i - 1] 两者取最大即可
class Solution {public int rob(int[] nums) {if(nums null || nums.length 0) return 0;int n nums.length;if(n 1) return nums[0];// 初始化 dp 数组int[] dp new int[n];dp[0] nums[0];dp[1] Math.max(nums[0], nums[1]);for(int i 2; i n; i ) dp[i] Math.max(dp[i - 1], dp[i - 2] nums[i]);return dp[n - 1];}
}