_198打家劫舍

_198打家劫舍

  • 原题链接:
  • 完成情况:
  • 解题思路:
    • _198打家劫舍
    • _198打家劫舍_滚动数组
    • _198打家劫舍_滚动优化
  • 参考代码:
  • 错误经验吸取

原题链接:

_198打家劫舍

https://leetcode.cn/problems/house-robber/submissions/496496112/

完成情况:

解题思路:

_198打家劫舍

package 代码随想录.动态规划;public class _198打家劫舍 {/**** @param nums* @return*/public int rob(int[] nums) {// TODO 每次偷窃后,必须至少冷却一天,问多大头去数量数多少if(nums == null || nums.length == 0){return 0;}if (nums.length == 1) {return nums[0];}//有多个时,才需要使用到dpint [] dp = new int[nums.length];//模拟出取每一个长度位置时的最大累计和dp[0] = nums[0];dp[1] = Math.max(dp[0],nums[1]);for (int i=2;i< nums.length;i++){dp[i] = Math.max(dp[i-1],dp[i-2]+nums[i]);}return dp[nums.length - 1];}
}

_198打家劫舍_滚动数组

package 代码随想录.动态规划;public class _198打家劫舍_滚动数组 {/*** 分析本题可以发现,所求结果仅依赖于前两种状态,此时可以使用滚动数组思想将空间复杂度降低为3个空间* @param nums* @return*/public int rob(int[] nums) {int len = nums.length;if (len == 0){return 0;} else if (len == 1) {return nums[0];}else if (len == 2){return Math.max(nums[0],nums[1]);}//如果存在多个时。每次只看目之所及的三个int result [] = new int[3]; //用来存放选择的结果result[0] = nums[0];result[1] = Math.max(nums[0],nums[1]);//迭代遍历完整个数组for (int i=2;i< len;i++){result[2] = Math.max(result[0]+nums[i],result[1]);result[0] = result[1];result[1] = result[2];}return result[2];}
}

_198打家劫舍_滚动优化

package 代码随想录.动态规划;public class _198打家劫舍_滚动优化 {/*** 进一步对滚动数组的空间优化 dp数组只存与计算相关的两次数据* @param nums* @return*/public int rob(int[] nums) {if (nums.length == 1) {return nums[0];}//初始化dp数组//优化空间,dp数组只用2个空间,只记录与当前计算相关的前两个结果int [] dp = new int[2];dp[0] = nums[0];dp[1] = Math.max(nums[0],nums[1]);int res = 0;//遍历for (int i=2;i< nums.length;i++){res = Math.max((dp[0] + nums[i]),dp[1]);dp[0] = dp[1];dp[1] = res;}//输出结果return dp[1];}
}

参考代码:

错误经验吸取

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

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

相关文章

中国联通助力吴江元荡生态岸线打造5G+自动驾驶生态长廊

吴江&#xff0c;素有“鱼米之乡”“丝绸之府”的美誉&#xff0c;其地理位置优越&#xff0c;地处太湖之滨。近年来&#xff0c;随着长三角生态绿色一体化发展示范区&#xff08;以下简称“示范区”&#xff09;的建立&#xff0c;元荡更是声名大噪&#xff0c;成为众多游客心…

GNU Radio简介及流程图搭建

文章目录 前言一、GNU Radio 是什么&#xff1f;二、GNU Radio 安装三、搭建第一个流程图1、创建 GRC 文件2、添加块3、运行流程图 前言 欢迎来到无线通信的世界&#xff0c;初步接触 GNU Radio&#xff0c;对其学习进行一个记录。 一、GNU Radio 是什么&#xff1f; GNU Rad…

Git 在 SSH 协议下使用代理

关于 Git 使用 Proxy , 网上很多教程讲的都是 如何设置 Http 下 Git 使用 Proxy , 但是并没有提到 SSH 下如何使用 Proxy . 即便有些文章讲到了, 也有不少是 Windows 平台下的, Linux 平台下的很少提及, 所以这里就记录一下, 如何在 Ubuntu 中, 使用 Git 在 SSH 协议下应用代理…

el-tree获取当前选中节点及其所有父节点的id(包含半选中父节点的id)

如下图,我们现在全勾中的有表格管理及其下的子级,而半勾中的有工作台和任务管理及其子级 现在点击保存按钮后,需要将勾中的节点id及该节点对应的父节点,祖先节点的id(包含半选中父节点的id)也都一并传给后端,那这个例子里就应该共传入9个id,我们可以直接将getCheckedK…

SpringMVC 拦截器

文章目录 1、拦截器的配置2、拦截器的三个抽象方法3、多个拦截器的执行顺序总结 Spring MVC 拦截器是Spring框架中的一种机制&#xff0c;用于在请求到达处理器之前和渲染视图之前拦截请求&#xff0c;并允许开发者在这两个时间点进行自定义的处理逻辑。拦截器与过滤器&#xf…

openlayers [七] 地图控件controls详解

文章目录 controls 简述常见的 controls 控件使用方法fullscreen 全屏mouseposition 鼠标位置控件overviewmap 鹰眼图scaleline 比例尺控件zoomslider 缩放滑块刻度控件 总结 controls 简述 上篇文章我们将了在地图上的交互(interaction)&#xff0c;那些都是一些隐性的需要去…

css3轮播图案例

轮播图案例 <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><meta name"viewport" content"widthdevice-width, initial-scale1.0"><title>Document</title><style>…

SIFT 算法和SURF(Speeded Up Robust Features)算法的全称是什么,分别是什么意思,分别是用来干什么的?

问题描述&#xff1a;SIFT 算法和SURF(Speeded Up Robust Features)算法的全称是什么&#xff0c;分别是什么意思&#xff0c;分别是用来干什么的&#xff1f; 问题解答&#xff1a; SIFT 算法: 全称&#xff1a; 尺度不变特征变换&#xff08;Scale-Invariant Feature Transf…

AIGC笔记--特征线性调制(FiLM)层的实现

目录 1--特征线性调制层的作用 2--特征线性调制层的实现 3--论文实例 1--特征线性调制层的作用 特征线性调制&#xff08;Feature-wise Linear Modulation&#xff0c;FiLM&#xff09;层是一种神经网络模块&#xff0c;它可以用来实现特征的条件调整。FiLM层的主要功能是对…

数据结构——二叉树的遍历与应用

目录 一.前言 二. 二叉树链式结构的实现 2.1 前置说明 2.2 二叉树的遍历 2.2.1 前序、中序以及后序遍历 前序遍历&#xff1a; 中序遍历递归图&#xff1a; 后序遍历&#xff1a; 2.3节点个数 2.4叶子节点个数 2.5第K层的节点个数 2.6 二叉树查找值为x的节点 2.7 …

[M数学] lc2171. 拿出最少数目的魔法豆(数学+前缀和)

文章目录 1. 题目来源2. 题目解析 1. 题目来源 链接&#xff1a;2171. 拿出最少数目的魔法豆 2. 题目解析 比较简单直接的思路吧&#xff0c;会发现最终的转换成的数组&#xff0c;每个元素要么是 0&#xff0c;不参与结果判断&#xff0c;要么大家都一样。想一想这个都一样…

【计算机网络】子网划分(经典基础练习题)

一、某主机IP地址为110.35.2.68&#xff0c;子网掩码为255.255.255.128&#xff0c;求网络地址&#xff1f; 二、有A类网络18.0.0.0的子网掩码为255.128.0.0&#xff0c;请问可以划分为多少个子网&#xff1f; 并写出每个子网的子网号&#xff1f; 三、将C类网119.181.25.0划分…

.NetCore Flurl.Http 4.0.0 以上管理客户端

参考原文地址&#xff1a;Managing Clients - Flurl 管理客户端 Flurl.Http 构建在堆栈之上System.Net.Http。如果您熟悉HttpClient&#xff0c;那么您可能听说过这个建议&#xff1a;不要为每个请求创建一个新客户端&#xff1b;重复使用它们&#xff0c;否则将面临后…

MySQL篇—性能压测工具mysqlslap介绍

☘️博主介绍☘️&#xff1a; ✨又是一天没白过&#xff0c;我是奈斯&#xff0c;DBA一名✨ ✌✌️擅长Oracle、MySQL、SQLserver、Linux&#xff0c;也在积极的扩展IT方向的其他知识面✌✌️ ❣️❣️❣️大佬们都喜欢静静的看文章&#xff0c;并且也会默默的点赞收藏加关注❣…

oracle rac 12.2.0.1CPU使用率100%

oracle rac 12.2.0.1 CPU使用率100% 查看是集群的java进程"oracle.ops.opsctl.OPSCTLDriver config database"占用cpu 根据进程号查找父进程,发现是/oracle/GRID/122/perl/bin/perl /oracle/GRID/122/tfa/gcmproddb01/tfa_home/bin/tfactl.pl rediscover -mode full …

JUnit 5 单元测试框架

依赖安装 <!-- https://mvnrepository.com/artifact/junit/junit --> <dependency><groupId>junit</groupId><artifactId>junit</artifactId><version>4.13.2</version><scope>test</scope> </dependency>…

Docker 安装 MongoDb4

Docker 安装mongoDb 获取mongodb安装参考 获取mongodb 注意&#xff1a; WARNING: MongoDB 5.0 requires a CPU with AVX support, and your current system does not appear to have that! **hub官网&#xff08;需要梯子&#xff09;&#xff1a;**https://hub.docker.com/_…

WAF攻防相关知识点总结1--信息收集中的WAF触发及解决方案

什么是WAF WAF可以通过对Web应用程序的流量进行过滤和监控&#xff0c;识别并阻止潜在的安全威胁。WAF可以检测Web应用程序中的各种攻击&#xff0c;例如SQL注入、跨站点脚本攻击&#xff08;XSS&#xff09;、跨站请求伪造&#xff08;CSRF&#xff09;等&#xff0c;并采取相…

Node.js基础---fs文件系统 读取和写入

什么是nodejs? 脚本语言需要一个解析器才能运行&#xff0c;JavaScript是脚本语言&#xff0c;在不同的位置有不一样的解析器&#xff0c;如写入html的js语言&#xff0c;浏览器是它的解析器角色。而对于需要独立运行的JS&#xff0c;nodejs就是一个解析器。 每一种解析器都是…

华为认证云计算专家(HCIE-Cloud Computing)--练习题

华为认证云计算专家&#xff08;HCIE-Cloud Computing&#xff09;–练习题 1.(判断题)华为云stack支持鲲鹏架构&#xff0c;业务可从X86过渡到鲲鹏。 正确答案&#xff1a;正确 2.(判断题)业务上云以后&#xff0c;安全方面由云服务商负责&#xff0c;客户自己不需要做任何防…