213. 打家劫舍 II

213. 打家劫舍 II

  • 原题链接:
  • 完成情况:
  • 参考代码:
  • 错误经验吸取

原题链接:

213. 打家劫舍 II、

https://leetcode.cn/problems/house-robber-ii/description/

完成情况:

213. 打家劫舍 II_第1张图片

参考代码:

package 代码随想录.动态规划;

public class _213打家劫舍II {
    /**
     *
     * @param nums
     * @return
     */
    public int rob(int[] nums) {
        //每间房内都藏有一定的现金。这个地方所有的房屋都 围成一圈
        //相邻的房屋装有相互连通的防盗系统,如果两间相邻的房屋在同一晚上被小偷闯入,系统会自动报警 。
        //这次是把一个数组当做一个环来处理
        if (nums == null || nums.length == 0){
            return 0;
        }
        int len = nums.length;
        if (len == 1){
            return nums[0];
        }
        return Math.max(robAction(nums,0,len-1),robAction(nums,1,len));

    }

    /**
     *
     * @param nums
     * @param start
     * @param end
     * @return
     */
    private int robAction(int[] nums, int start, int end) {
        int x = 0,y = 0,z = 0;
        for (int i = start;i<end;i++){
            y = z;
            z = Math.max(y,x+nums[i]);
            x = y;
        }
        return z;
    }
}

错误经验吸取

你可能感兴趣的:(java学习,算法知识,#,LeetCode题解,回归,排序算法,算法,java)