打家劫舍(一) 動態規劃
阿新 • • 發佈:2022-12-07
import java.util.*;
public class Solution { /** * 程式碼中的類名、方法名、引數名已經指定,請勿修改,直接返回方法規定的值即可 * * * @param nums int整型一維陣列 * @return int整型 */ public int rob (int[] nums) { // write code here
if(nums.length==1){ return nums[0]; }else if(nums.length == 2){ return Math.max(nums[0], nums[1]); }else{ int max = 0; int[] dp = new int[nums.length]; dp[0] = nums[0]; dp[1] = Math.max(nums[0], nums[1]); max = dp[1]; for(int i=2; i<nums.length; i++){ dp[i] = Math.max(dp[i-2]+nums[i], dp[i-1]); if(dp[i]> max){ max = dp[i]; } } return max; } } }
public class Solution { /** * 程式碼中的類名、方法名、引數名已經指定,請勿修改,直接返回方法規定的值即可 * * * @param nums int整型一維陣列 * @return int整型 */ public int rob (int[] nums) { // write code here
if(nums.length==1){ return nums[0]; }else if(nums.length == 2){ return Math.max(nums[0], nums[1]); }else{ int max = 0; int[] dp = new int[nums.length]; dp[0] = nums[0]; dp[1] = Math.max(nums[0], nums[1]); max = dp[1]; for(int i=2; i<nums.length; i++){ dp[i] = Math.max(dp[i-2]+nums[i], dp[i-1]); if(dp[i]> max){ max = dp[i]; } } return max; } } }