当前位置: 首页 > news >正文

代码随想录算法训练营Day48 || ● 198.打家劫舍 ● 213.打家劫舍II ● 337.打家劫舍III

问题1:198. 打家劫舍 - 力扣(LeetCode)

你是一个专业的小偷,计划偷窃沿街的房屋。每间房内都藏有一定的现金,影响你偷窃的唯一制约因素就是相邻的房屋装有相互连通的防盗系统,如果两间相邻的房屋在同一晚上被小偷闯入,系统会自动报警

给定一个代表每个房屋存放金额的非负整数数组,计算你 不触动警报装置的情况下 ,一夜之内能够偷窃到的最高金额。

思路:该题逻辑关系较为简单,dp[j]表示到j点时的最大值,代码如下:

class Solution {
public:int rob(vector<int>& nums) {if(nums.size()==1) return nums[0];if(nums.size()==2) return (nums[0]<nums[1] ? nums[1] : nums[0]);vector<int> dp(nums.size()+1,0);dp[0] = nums[0];dp[1] = nums[1];for(int i=2;i<nums.size();i++){if(i >= 3) dp[i] = max(max(dp[i-1],nums[i]+dp[i-2]),nums[i]+nums[i-3]);else dp[i] = max(dp[i-1],nums[i]+dp[i-2]);}return dp[nums.size()-1];}
};

问题2:213. 打家劫舍 II - 力扣(LeetCode)

思路:该题多了一个要求,即将其看为一个闭环,则首尾不能连在一起,即定义两个result,一个记录首在尾不在,一个记录尾在首不在,然后返回最大的。代码如下:

class Solution {
public:int robRange(vector<int>& nums,int start,int end){if(start == end) return nums[start];vector<int> dp(nums.size(),0);dp[start] = nums[start];dp[start+1] = max(nums[start+1],nums[start]);  for(int i=start+2;i<=end;i++){dp[i] = max(dp[i-1],dp[i-2]+nums[i]);}     return dp[end];}int rob(vector<int>& nums) {if(nums.size() == 1) return nums[0];if(nums.size() == 2) return nums[0]<nums[1] ? nums[1] : nums[0];int result1 = robRange(nums,0,nums.size()-2);int result2 = robRange(nums,1,nums.size()-1);return max(result1,result2);}
};

问题3:337. 打家劫舍 III - 力扣(LeetCode)

思路:这个题用的是对树的递归,代码如下:

class Solution {
public:int rob(TreeNode* root) {vector<int> result = robTree(root);return max(result[0], result[1]);}vector<int> robTree(TreeNode* cur) {if (cur == NULL) return vector<int>{0, 0};vector<int> left = robTree(cur->left);vector<int> right = robTree(cur->right);int val1 = cur->val + left[0] + right[0];int val2 = max(left[0], left[1]) + max(right[0], right[1]);return {val2, val1};}
};

相关文章:

代码随想录算法训练营Day48 || ● 198.打家劫舍 ● 213.打家劫舍II ● 337.打家劫舍III

问题1&#xff1a;198. 打家劫舍 - 力扣&#xff08;LeetCode&#xff09; 你是一个专业的小偷&#xff0c;计划偷窃沿街的房屋。每间房内都藏有一定的现金&#xff0c;影响你偷窃的唯一制约因素就是相邻的房屋装有相互连通的防盗系统&#xff0c;如果两间相邻的房屋在同一晚上…...

高通面临难题,Oryon核心存在问题,高通8cx Gen 4芯片将推迟发布

"高通公司面临难题&#xff0c;可能会导致骁龙8cx Gen 4的发布时间推迟"&#xff0c;关于骁龙8cx Gen 4处理器&#xff0c;还有一些其他值得关注的特点和功能。首先&#xff0c;据悉&#xff0c;骁龙8cx Gen 4采用了高通自家研发的Oryon核心架构&#xff0c;这是一项…...

安卓手机如何使用邮箱客户端收发邮件

安卓手机品牌较多&#xff0c;设置界面都不太相同&#xff0c;部分手机常见的如vivo、小米手机都是直接填写邮箱用户名和密码&#xff0c;软件自动设置&#xff0c;即可登录邮箱&#xff0c;其他安卓手机或者第三方安卓手机软件有时候需要手动设置&#xff0c;此处以安卓手机的…...

对java中的List进行深拷贝,并进行删除测试

List<String> list new ArrayList<>(); // 需要拷贝的原始List list.add("aaa"); list.add("bbb"); list.add("ccc"); List<String> listNew new ArrayList<>(); // 新List // 将原始List的值赋值给新List Co…...

springboot服务注册到Eureka,端口总是默认8080,自己配置端口不生效

这段时间接手了一个公司的老项目&#xff0c;用的是SpringCloud&#xff0c;在我用的时候突然发现有一个服务&#xff0c;注册到Eureka后&#xff0c;界面显示的端口和实际Ribbon调用的实例端口是不一致的&#xff0c;后来我自己写了个端口获取了一下所有的实例信息&#xff0c…...

LeetCode第11~15题解

CONTENTS LeetCode 11. 盛最多水的容器&#xff08;中等&#xff09;LeetCode 12. 整数转罗马数字&#xff08;中等&#xff09;LeetCode 13. 罗马数字转整数&#xff08;简单&#xff09; LeetCode 11. 盛最多水的容器&#xff08;中等&#xff09; 【题目描述】 给定一个长…...

如何编译打包OpenSSH 9.4并实现批量升级

1 介绍 openssh 9.4版本已于8月10号发布&#xff0c;安全团队又催着要赶紧升级环境里的ssh版本&#xff0c;本文主要介绍Centos5、Centos6、Centos7下openssh 9.4源码编译rpm包以及批量升级服务器openssh版本的方法。关注公众号后台回复ssh可获取本文相关源码文件。 https://w…...

AcWing 898. 数字三角形 (每日一题)

大家好 我是寸铁 希望这篇题解对你有用&#xff0c;麻烦动动手指点个赞或关注&#xff0c;感谢您的关注 注意 像数组下标出现i-1的&#xff0c;在循环的时候从i1开始。 关于0x3f3f3f3f和Integer.MAX_VALUE 0x3f3f3f3f:1061109567 Integer.MAX_VALUE:2147483647 在选用Integ…...

深度学习中,batchsize的大小对训练结果有什么影响,如何正确使用

一、影响&#xff1a; Batch size在深度学习训练中起着非常重要的作用&#xff0c;它对训练速度、模型性能、以及模型的泛化能力都有影响。以下是一些主要的影响&#xff1a; 训练速度&#xff1a;较大的batch size可以更充分地利用硬件并行性&#xff0c;从而加快单个epoch的…...

Squaretest 1.8.3 安装激活

1. 插件下载 2. 离线安装 3. 插件激活...

P21~22 第六章 储能元件——电容存储电场能,电感存储磁场能

1、电容元件 a定义 b线性时不变电容元件 c电容的电压与电流关系 i有限则u有限 注意理解面积 d电容的功率和储能 e例一 跃变就是指物体的物理量从有限值变为无限值的过程。 分析上图例题&#xff1a;对于电源波形要吃负无穷到正无穷去刻画。即时间轴要铺满。 有有图控制电…...

常见API架构介绍

常见API架构介绍 两个服务间进行接口调用&#xff0c;通过调用API的形式进行交互&#xff0c;这是常见CS架构实现的模式&#xff0c;客户端通过调用API即可使用服务端提供的服务。相较于SPI这种模式&#xff0c;就是服务端只规定服务接口&#xff0c;但具体实现交由第三方或者自…...

Vue全局组件与局部组件(详解)

当使用 Vue.js 构建应用时&#xff0c;组件是其核心概念之一。Vue 组件允许你将用户界面分割成独立、可复用的部分。这里我会更详细地解释 Vue 的全局组件和局部组件&#xff0c;包括它们的定义、使用方式以及适用场景。 Vue 全局组件&#xff1a; 全局组件是在整个 Vue 应用…...

对标 GPT-4?科大讯飞刘庆峰:华为GPU技术能力已与英伟达持平

科大讯飞创始人、董事长刘庆峰在亚布力中国企业家论坛第十九届夏季高峰会上透露了关于自家大模型进展的一些新内容。刘庆峰认为&#xff0c;中国在人工智能领域的算法并没有问题&#xff0c;但是算力方面似乎一直被英伟达所限制。 以往的“百模大战”中&#xff0c;训练大型模型…...

pytorch中torch.gather()简单理解

1.作用 从输入张量中按照指定维度进行索引采集操作&#xff0c;返回值是一个新的张量&#xff0c;形状与 index 张量相同&#xff0c;根据指定的索引从输入张量中采集对应的元素。 2.问题 该函数的主要问题主要在dim维度上&#xff0c;dim0 表示沿着第一个维度&#xff08;行…...

计算机网络安全的背景

虽然传统的计算机发展和当今的电子商务不同&#xff0c;但是不可否认网络已经成 为非常重要的信息和数据互换交换的平台。但是随着网络不断发展渗透到人们的日 常生活、手机终端、交易支付等环节时&#xff0c;网络安全已经成为一个焦点和不可逾越的 发展鸿沟。尽管目前网上…...

Linux(实操篇一)

Linux实操篇 Linux(实操篇一)1. 常用基本命令1.1 帮助命令1.1.1 man获得帮助信息1.1.2 help获得shell内置命令的帮助信息1.1.3 常用快捷键 1.2 文件目录类1.2.1 pwd显示当前 工作目录的绝对路径1.2.2 ls列出目录的内容1.2.3 cd切换目录1.2.4 mkdir创建一个新的目录1.2.5 rmdir删…...

如何做一个学术裁缝

水刊&#xff1a;SCI四区&#xff0c;部分三区 顶刊、顶会要看&#xff0c;但是别看多了&#xff0c;知道好的东西长什么样就行了 去水刊&#xff0c;多去看水刊论文&#xff0c;能发现新大陆 一个论文需要多个数据集&#xff08;两个&#xff09;&#xff0c;绝大多数水刊只用…...

微服务系统面经之二: 以秒杀系统为例

16 微服务与集群部署 16.1 一个微服务一般会采用集群部署吗&#xff1f; 对于一个微服务是否采用集群部署&#xff0c;这完全取决于具体的业务需求和系统规模。如果一个微服务的访问压力较大&#xff0c;或者需要提供高可用性&#xff0c;那么采用集群部署是一种常见的策略。…...

73 # 发布自己的 http-server 到 npm

1、添加 .npmignore 文件&#xff0c;忽略不需要的文件 public2、去官网https://www.npmjs.com/检查自己的包名是否被占用 3、切换到官方源&#xff0c;然后检查确认 nrm use npm nrm ls4、登录 npm 账号 npm login5、发布 npm publish6、查看发布情况&#xff0c;发布成功…...

使用docker在3台服务器上搭建基于redis 6.x的一主两从三台均是哨兵模式

一、环境及版本说明 如果服务器已经安装了docker,则忽略此步骤,如果没有安装,则可以按照一下方式安装: 1. 在线安装(有互联网环境): 请看我这篇文章 传送阵>> 点我查看 2. 离线安装(内网环境):请看我这篇文章 传送阵>> 点我查看 说明&#xff1a;假设每台服务器已…...

多云管理“拦路虎”:深入解析网络互联、身份同步与成本可视化的技术复杂度​

一、引言&#xff1a;多云环境的技术复杂性本质​​ 企业采用多云策略已从技术选型升维至生存刚需。当业务系统分散部署在多个云平台时&#xff0c;​​基础设施的技术债呈现指数级积累​​。网络连接、身份认证、成本管理这三大核心挑战相互嵌套&#xff1a;跨云网络构建数据…...

VB.net复制Ntag213卡写入UID

本示例使用的发卡器&#xff1a;https://item.taobao.com/item.htm?ftt&id615391857885 一、读取旧Ntag卡的UID和数据 Private Sub Button15_Click(sender As Object, e As EventArgs) Handles Button15.Click轻松读卡技术支持:网站:Dim i, j As IntegerDim cardidhex, …...

【人工智能】神经网络的优化器optimizer(二):Adagrad自适应学习率优化器

一.自适应梯度算法Adagrad概述 Adagrad&#xff08;Adaptive Gradient Algorithm&#xff09;是一种自适应学习率的优化算法&#xff0c;由Duchi等人在2011年提出。其核心思想是针对不同参数自动调整学习率&#xff0c;适合处理稀疏数据和不同参数梯度差异较大的场景。Adagrad通…...

oracle与MySQL数据库之间数据同步的技术要点

Oracle与MySQL数据库之间的数据同步是一个涉及多个技术要点的复杂任务。由于Oracle和MySQL的架构差异&#xff0c;它们的数据同步要求既要保持数据的准确性和一致性&#xff0c;又要处理好性能问题。以下是一些主要的技术要点&#xff1a; 数据结构差异 数据类型差异&#xff…...

C#学习第29天:表达式树(Expression Trees)

目录 什么是表达式树&#xff1f; 核心概念 1.表达式树的构建 2. 表达式树与Lambda表达式 3.解析和访问表达式树 4.动态条件查询 表达式树的优势 1.动态构建查询 2.LINQ 提供程序支持&#xff1a; 3.性能优化 4.元数据处理 5.代码转换和重写 适用场景 代码复杂性…...

解读《网络安全法》最新修订,把握网络安全新趋势

《网络安全法》自2017年施行以来&#xff0c;在维护网络空间安全方面发挥了重要作用。但随着网络环境的日益复杂&#xff0c;网络攻击、数据泄露等事件频发&#xff0c;现行法律已难以完全适应新的风险挑战。 2025年3月28日&#xff0c;国家网信办会同相关部门起草了《网络安全…...

jmeter聚合报告中参数详解

sample、average、min、max、90%line、95%line,99%line、Error错误率、吞吐量Thoughput、KB/sec每秒传输的数据量 sample&#xff08;样本数&#xff09; 表示测试中发送的请求数量&#xff0c;即测试执行了多少次请求。 单位&#xff0c;以个或者次数表示。 示例&#xff1a;…...

手机平板能效生态设计指令EU 2023/1670标准解读

手机平板能效生态设计指令EU 2023/1670标准解读 以下是针对欧盟《手机和平板电脑生态设计法规》(EU) 2023/1670 的核心解读&#xff0c;综合法规核心要求、最新修正及企业合规要点&#xff1a; 一、法规背景与目标 生效与强制时间 发布于2023年8月31日&#xff08;OJ公报&…...

前端中slice和splic的区别

1. slice slice 用于从数组中提取一部分元素&#xff0c;返回一个新的数组。 特点&#xff1a; 不修改原数组&#xff1a;slice 不会改变原数组&#xff0c;而是返回一个新的数组。提取数组的部分&#xff1a;slice 会根据指定的开始索引和结束索引提取数组的一部分。不包含…...