【算法刷题day47】Leetcode:198. 打家劫舍、213. 打家劫舍 II、337. 打家劫舍 III

文章目录

    • Leetcode 198. 打家劫舍
      • 解题思路
      • 代码
      • 总结
    • Leetcode 213. 打家劫舍 II
      • 解题思路
      • 代码
      • 总结
    • Leetcode 337. 打家劫舍 III
      • 解题思路
      • 代码
      • 总结

草稿图网站
java的Deque

Leetcode 198. 打家劫舍

题目:198. 打家劫舍
解析:代码随想录解析

解题思路

偷:上上家的最大值加上这一家
不偷:上家的最大值

代码

class Solution {public int rob(int[] nums) {if (nums == null || nums.length == 0)   return 0;if (nums.length == 1)   return nums[0];int []dp = new int[nums.length];dp[0] = nums[0];dp[1] = Math.max(nums[0], nums[1]);for (int i = 2; i < dp.length; i++) {dp[i] = Math.max(dp[i-2] + nums[i], dp[i-1]);}return dp[dp.length-1];}
}//滚动数组
class Solution {public int rob(int[] nums) {if (nums == null || nums.length == 0)   return 0;if (nums.length == 1)   return nums[0];if (nums.length == 2)   return Math.max(nums[0], nums[1]);int []dp = new int[3];dp[0] = nums[0];dp[1] = Math.max(nums[0], nums[1]);for (int i = 2; i < nums.length; i++) {dp[2] = Math.max(dp[0] + nums[i], dp[1]);dp[0] = dp[1];dp[1] = dp[2];}return dp[2];}
}

总结

暂无

Leetcode 213. 打家劫舍 II

题目:213. 打家劫舍 II
解析:代码随想录解析

解题思路

去头去尾两种情况取最大值

代码

class Solution {public int rob(int[] nums) {if (nums == null || nums.length == 0)   return 0;if (nums.length == 1)   return nums[0];int result1 = robHouse(nums, 0, nums.length - 2);int result2 = robHouse(nums, 1, nums.length - 1);return Math.max(result1, result2);}private int robHouse(int[] nums, int begin, int end) {if (begin == end)return nums[begin];else if (begin + 1 == end)return Math.max(nums[begin], nums[begin + 1]);int []dp = new int[3];dp[0] = nums[begin];dp[1] = Math.max(nums[begin], nums[begin + 1]);for (int i = begin + 2; i <= end; i++) {dp[2] = Math.max(dp[1], dp[0] + nums[i]);dp[0] = dp[1];dp[1] = dp[2];}return dp[2];}
}

总结

暂无

Leetcode 337. 打家劫舍 III

题目:337. 打家劫舍 III
解析:代码随想录解析

解题思路

两种情况取最大值,当前节点偷两个孩子不偷;当前节点不透两个孩子偷和不偷的最大值。

代码

/*** Definition for a binary tree node.* public class TreeNode {*     int val;*     TreeNode left;*     TreeNode right;*     TreeNode() {}*     TreeNode(int val) { this.val = val; }*     TreeNode(int val, TreeNode left, TreeNode right) {*         this.val = val;*         this.left = left;*         this.right = right;*     }* }*/
class Solution {public int rob(TreeNode root) {int[] vals = robHouse(root);return Math.max(vals[0], vals[1]);}private int[] robHouse(TreeNode root) {int[] res = new int[2];if (root == null)return res;int[] left = robHouse(root.left);int[] right = robHouse(root.right);//0表示偷,1表示不偷res[0] = root.val + left[1] + right[1];res[1] = Math.max(left[0], left[1]) + Math.max(right[0], right[1]);return res;}
}

总结

暂无

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/diannao/8552.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Python 正则表达式 re.findall()

Python re.findall 正文示例一示例二示例三 正文 调用方法&#xff1a; re.findall(pattern, string, flags0)用法说明&#xff1a; 扫描整个 字符串&#xff0c;找到所有满足匹配样式的字符&#xff0c;将它们集合在一起以列表形式返回。其中这个返回的列表包含空的结果(没有…

CSF(Cloth Simulation Filter)点云地面点滤波

CSF[Cloth Simulation Filter]点云地面点滤波 0.引言1.布料模拟2.修改布料模拟3.布料滤波4.CSF总体过程 0.引言 code 基本原理&#xff1a;原始点云被倒置过来&#xff0c;然后⼀块布从上⽅掉落到倒置的表⾯。通过分析布的节点与相应的LIDAR点之间的相互作⽤&#xff0c;可以确…

2024年华为OD机试真题-数的分解-(C++)-OD统一考试(C卷D卷)

题目描述: 给定一个正整数n,如果能够分解为m(m > 1)个连续正整数之和,请输出所有分解中,m最小的分解。 如果给定整数无法分解为连续正整数,则输出字符串"N"。 输入描述: 输入数据为一整数,范围为(1, 2^30] 输出描述: 比如输入为: 21 输出: 21=10+11 补…

C++中使用Multimap和Vector管理和展示数据

一&#xff1a; 在本文中&#xff0c;我们将探讨如何在C中使用vector和multimap容器来管理一个简单的员工数据系统。我们将创建一个员工类&#xff0c;随机生成员工数据&#xff0c;将员工分组&#xff0c;并展示各组员工的详细信息。此示例展示了C标准模板库&#xff08;STL&…

【中级软件设计师】上午题15-计算机网络

上午题15-计算机网络 1 网络设备2 协议簇3 TCP和UDP4 SMTP和POP35 ARP和RARP6 DHCP&#xff08;Dynamic Host Configuration Protocol&#xff09;7 URL8 浏览器9 IP地址和子网划分10 IPv611 Windows命令12 路由器 1 网络设备 物理层设备&#xff1a;中继器、集线器&#xff0…

Mysql基础(五)外键约束

一 外键 激励&#xff1a; 每天进步一点点即可 ① 思考 1、在MySQL中,我们知道主键 PRIMARY KEY的主要作用是唯一区分表中的各个行 [记录];思考&#xff1a;但是对于外键 foreign key比较陌生? 那么外键作用以及限制条件和目的呢? ② 外键的定义 1、外键是某个表 A中…

图像处理之SVD检测显示屏缺陷(C++)

图像处理之SVD检测显示屏缺陷&#xff08;C&#xff09; 文章目录 图像处理之SVD检测显示屏缺陷&#xff08;C&#xff09;前言一、SVD算法简介二、代码实现总结 前言 显示屏缺陷检测是机器视觉领域的一处较广泛的应用场景&#xff0c;显示屏主要有LCD和OLED&#xff0c;缺陷类…

基于java,SpringBoot和Vue的智慧校园在线考试留言讨论系统设计

摘要 基于Java, SpringBoot和Vue的智慧校园在线考试留言讨论系统是一个为现代教育需求定制的Web应用&#xff0c;它结合了最新的前后端技术来提供一个互动性强、用户友好的学习和交流平台。该系统旨在通过提供实时留言和讨论功能&#xff0c;增进学生间的互动以及师生之间的沟…

算法打卡day44

今日任务&#xff1a; 1&#xff09;309.最佳买卖股票时机含冷冻期 2&#xff09;714.买卖股票的最佳时机含手续费 3&#xff09;复习day19 309.最佳买卖股票时机含冷冻期 题目链接&#xff1a;309. 买卖股票的最佳时机含冷冻期 - 力扣&#xff08;LeetCode&#xff09; 给定一…

快来看 2024年ICLR杰出论文奖揭晓啦 值得关注

会议之眼 快讯 在人工智能的浪潮中&#xff0c;国际学习表征会议&#xff08;ICLR&#xff09;无疑是引领学术前沿的重要会议之一&#xff01;ICLR是深度学习领域的顶级会议之一&#xff0c;由深度学习领域的两位巨头Yoshua Bengio和Yann LeCun于2013年创办。 2024年5月6日&a…

NSSCTF中的web

目录 [第五空间 2021]WebFTP [LitCTF 2023]PHP是世界上最好的语言&#xff01;&#xff01; [SWPUCTF 2021 新生赛]PseudoProtocols [LitCTF 2023]导弹迷踪 [NISACTF 2022]easyssrf [第五空间 2021]WebFTP 1.进入页面&#xff0c;发现是登录页面&#xff0c;想到 弱口令&…

反射技术介绍以及底层逻辑使用

反射概述&#xff1a; 1.反射是指对于任何一个Class类&#xff0c;在"运行的时候"都可以直接得到这个类全部成分。 2.在运行时,可以直接得到这个类的构造器对象&#xff1a;Constructor 3.在运行时,可以直接得到这个类的成员变量对象&#xff1a;Field 4.在运行时,可…

大模型微调之 在亚马逊AWS上实战LlaMA案例(六)

大模型微调之 在亚马逊AWS上实战LlaMA案例&#xff08;六&#xff09; 通过 SageMaker Python SDK 进行微调Llama2 可以使用 SageMaker Python SDK 微调 Llama 2 模型。以下是在数据集上微调 Llama 2 7B 的示例代码&#xff1a; import os import boto3 from sagemaker.sessi…

【RAG 博客】Small-to-Big Retrieval

Blog&#xff1a;Advanced RAG 01: Small-to-Big Retrieval ⭐⭐⭐⭐ Code&#xff1a;https://colab.research.google.com/github/sophiamyang/demos/blob/main/advanced_rag_small_to_big.ipynb Small-to-Big Retrieval 技术试图解决这样一个矛盾&#xff1a;更大的 chunk 可…

28 JavaScript学习: 代码规范

代码规范通常包括以下几个方面: 变量和函数的命名规则空格&#xff0c;缩进&#xff0c;注释的使用规则。其他常用规范…… 变量名 在编写JavaScript代码时&#xff0c;遵守良好的变量命名规范是非常重要的&#xff0c;这可以增加代码的可读性和可维护性。以下是一些常见的…

iOS ------ 内存五大分区

1&#xff0c;内存的概念&#xff1a; 虚拟内存&#xff08;Virtual Memory&#xff09;&#xff1a;虚拟内存是操作系统提供的一种机制&#xff0c;它使得应用程序能够访问超出物理内存限制的内存空间。虚拟内存将应用程序的内存地址空间分割成固定大小的页面&#xff08;Pag…

18.Docker学习

1.Docker应用场景 Docker借鉴了标准集装箱的概念。标准集装箱将货物运往世界各地&#xff0c;Docker&#xff08;模板&#xff09;将软件运往各个环境&#xff08;测试环境和生产环境拉取镜像&#xff08;实例&#xff09;&#xff09;&#xff0c;相当于是一个模子刻出来的 …

路由策略与路由控制

1.路由控制工具 匹配工具1&#xff1a;访问控制列表 &#xff08;1&#xff09;通配符 当进行IP地址匹配的时候&#xff0c;后面会跟着32位掩码位&#xff0c;这32位称为通配符。 通配符&#xff0c;也是点分十进制格式&#xff0c;换算成二进制后&#xff0c;“0”表示“匹配…

【软考】模拟考卷错题本2024-05-07

1 项目路径 这里的图没有加载出来&#xff0c;没u哦i关系了。其实主要是的算出最长的路径中包含那些元素即可。这里是蒙圈了&#xff0c;没有考虑到还有更长的。要顾头也顾尾。 2 算法分析-贪心 该问题主要考核的是算法设计策略来达到目标的方式。主要的设计策略有&#xff1a;…

Linux变量的认识及环境变量配置详解

文章目录 1、变量的划分2、局部变量3、全局变量4、环境变量4.1、概述4.2、配置临时环境变量4.3、配置永久环境变量4.3.1、用户级配置文件1&#xff09;配置方法一&#xff1a;~/.bashrc文件2&#xff09;配置方法二&#xff1a;~/.profile文件3&#xff09;配置方法三&#xff…