代码编织梦想

LeetCode-198

//定义状态:dp[i]代表从前i个房子中偷东西,能偷到的最大值
//定义状态方程:dp[i] = Math.Max(dp[i-1],dp[i-2]+nums[i])
//对于当前位置,我们有两个选择,一是不偷盖房子此时dp[i]  = dp[i-1]
//如果偷当前房子dp[i] = dp[i-2]+nums[i]
//可以看到当前状态之和前两个状态相关,因此只需要两个变量。
    public int rob(int[] nums) {
        if (nums.length==1){
            return nums[0];
        }
        if (nums.length == 2){
            return Math.max(nums[0],nums[1]);
        }
        int dp0 = nums[0];
        int dp1 = Math.max(nums[1],nums[0]);
        for (int i = 2; i < nums.length; i++) {
            int temp = dp1;
            dp1 = Math.max(dp1,dp0+nums[i]);
            dp0 = temp;
        }
        return dp1;
    }
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/qq_44585331/article/details/127168871

leetcode-198. 打家劫舍-java_wangxizzz的博客-爱代码爱编程

LeetCode-198 House Robber 问题描述 你是一个专业的小偷,计划偷窃沿街的房屋。每间房内都藏有一定的现金,影响你偷窃的唯一制约因素就是相邻的房屋装有相互连通的防盗系统,如果两间相邻的房屋在同一晚上被

LeetCode198---打家劫舍-爱代码爱编程

题目描述 你是一个专业的小偷,计划偷窃沿街的房屋。每间房内都藏有一定的现金,影响你偷窃的唯一制约因素就是相邻的房屋装有相互连通的防盗系统,如果两间相邻的房屋在同一晚上被小偷闯入,系统会自动报警。 给定一个代表每个房屋存放金额的非负整数数组,计算你在不触动警报装置的情况下,能够偷窃到的最高金额。 示例1 输入: [1,2,3,1] 输出: 4 解释:

Leetcode-198 打家劫舍 213 打家劫舍II-爱代码爱编程

题目描述: 你是一个专业的小偷,计划偷窃沿街的房屋。每间房内都藏有一定的现金,影响你偷窃的唯一制约因素就是相邻的房屋装有相互连通的防盗系统,如果两间相邻的房屋在同一晚上被小偷闯入,系统会自动报警。 给定一个代表每个房屋存放金额的非负整数数组,计算你不触动警报装置的情况下 ,一夜之内能够偷窃到的最高金额。 示例 1: 输入:[1,2,3,1] 输出:

LeetCode-198 打家劫舍-爱代码爱编程

LeetCode-198 打家劫舍 考察内容: 数组、动态规划 题目描述: 你是一个专业的小偷,计划偷窃沿街的房屋。每间房内都藏有一定的现金,影响你偷窃的唯一制约因素就是相邻的房屋装有相互连通的防盗系统,如果两间相邻的房屋在同一晚上被小偷闯入,系统会自动报警。 给定一个代表每个房屋存放金额的非负整数数组,计算你 不触动警报装置的情况下 ,一夜之内

LeetCode-198. 打家劫舍-爱代码爱编程

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

LeetCode - 198. 打家劫舍 (java)-爱代码爱编程

你是一个专业的小偷,计划偷窃沿街的房屋。每间房内都藏有一定的现金,影响你偷窃的唯一制约因素就是相邻的房屋装有相互连通的防盗系统,如果两间相邻的房屋在同一晚上被小偷闯入,系统会自动报警。 给定一个代表每个房屋存放金额的非负整数数组,计算你 不触动警报装置的情况下 ,一夜之内能够偷窃到的最高金额。 示例: 输入:[1,2,3,1] 输出

leetcode--打家劫舍-爱代码爱编程

题目:假如ihsi一个专业的小偷,准备计划去偷窃沿街边的房子,每个房子都藏有现金,唯一限制你偷窃的因素是偷窃警报系统,如果相连两个房子同一晚上都被小偷闯入,系统就会报警。 给定一个代表每个房子内现存有金额的非负整数数组,计算你在不触发警报系统的前提下可以盗窃最大的金额。 栗子①: 输入:nums=[1,2,3,1],输出:4. 解释:偷1号房子(1

每日一题leetcode--打家劫舍2_电击公主就是我的lp的博客-爱代码爱编程

你是一个专业的小偷,计划偷窃沿街的房屋,每间房内都藏有一定的现金。这个地方所有的房屋都 围成一圈 ,这意味着第一个房屋和最后一个房屋是紧挨着的。同时,相邻的房屋装有相互连通的防盗系统,如果两间相邻的房屋在同一晚上被小偷闯入,系统会自动报警 。 给定一个代表每个房屋存放金额的非负整数数组,计算你 在不触动警报装置的情况下 ,今晚能够偷窃到的最高金额。

【leetcode每日一题】2022-09-30 面试题 01.08 零矩阵 java实现_努力努力再努力@_@的博客-爱代码爱编程

文章目录 题目方案一 我的思路:两个HashSet方案二 标记数组方案三 使用两个标记变量 题目 方案一 我的思路:两个HashSet 遍历二维数组,用两个hashSet来存储0出现的行和列 在遍

leetcode-198-打家劫舍_犬兄的海角的博客-爱代码爱编程

1、动态规划 我们用数组dp记录当以第i位的房子为末尾时,能够获得的最大金额。很显然,dp[0] = nums[0],dp[1] = max(nums[0], nums[1])。当我们每读入一位新的数字时,dp的更新只

图解leetcode——777. 在lr字符串中交换相邻字符(难度:中等)_爪哇缪斯的博客-爱代码爱编程

 一、题目 在一个由 'L' , 'R' 和 'X' 三个字符组成的字符串(例如"RXXLRXRXL")中进行移动操作。一次移动操作指用一个"LX"替换一个"XL",或者用一个"XR"替换一个"RX"。现给定起始字符串start和结束字符串end,请编写代码,当且仅当存在一系列移动操作使得start可以转换成end时, 返回True。 二、示例 2.

leetcode50天刷题计划第二季(day 8 —恢复二叉搜索树(17.30-18.40_国际知名观众的博客-爱代码爱编程

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 前言一、题目恢复二叉搜索树示例提示进阶 二、思路三、代码 前言 最近跟二叉搜索树杠上了、、 一、题目 恢复二

二叉树中的最大路径和——递归/分情况讨论_keep forward-forward的博客-爱代码爱编程

一、题目 路径 被定义为一条从树中任意节点出发,沿父节点-子节点连接,达到任意节点的序列。 同一个节点在一条路径序列中 至多出现一次 。该路径 至少包含一个 节点,且不一定经过根节点。 路径和 是路径中各节点值的总和。 给