zoukankan      html  css  js  c++  java
  • Leecode no.198. 打家劫舍

    package leecode;

    /**
    * 198. 打家劫舍
    *
    *
    *你是一个专业的小偷,计划偷窃沿街的房屋。每间房内都藏有一定的现金,
    * 影响你偷窃的唯一制约因素就是相邻的房屋装有相互连通的防盗系统,
    *如果两间相邻的房屋在同一晚上被小偷闯入,系统会自动报警。
    *给定一个代表每个房屋存放金额的非负整数数组,计算你 不触动警报装置的情况下 ,一夜之内能够偷窃到的最高金额。
    *
    * @author Tang
    * @date 2021/9/16
    */
    public class Rob {


    /**
    * 我是一个bu会动态规划的小偷
    * n :房间号n
    * f(n) :按顺序 到n号房的可偷最大金额
    * f(n) = Max(f(n-2) + V(n), f(n-1))
    * base :f(1) = nums[1] ; f(2) = Max(nums[1], nums[2])
    *
    *
    * @param nums
    * @return
    */
    public int rob(int[] nums) {
    if(nums.length == 0) {
    return 0;
    }

    if(nums.length == 1) {
    return nums[0];
    }

    //构建dp tables
    int[] tables = new int[nums.length];
    for(int i = 0; i < nums.length; i++) {
    if(i == 0){
    tables[i] = nums[i];
    continue;
    }
    if(i == 1) {
    tables[i] = Math.max(nums[0], nums[1]);
    continue;
    }

    tables[i] = Math.max(tables[i - 2] + nums[i], tables[i - 1]);
    }
    return tables[nums.length - 1];

    }


    public static void main(String[] args) {
    int[] num = {2,7,9,3,1};
    System.out.println(new Rob().rob(num));

    }

    }
  • 相关阅读:
    第3章 Activity的生命周期
    掌握jQuery插件开发,这篇文章就够了
    第22章 Master-Detail 用户界面
    JavaScript动画1-速度动画
    Compass学习指南
    Compass中导入Normalize
    Sass学习指南
    BASIC-2 01字串
    leetocode题解
    机器学习算法的sklearn实现
  • 原文地址:https://www.cnblogs.com/ttaall/p/15293150.html
Copyright © 2011-2022 走看看