Leetcode1997. 访问完所有房间的第一天

Every day a Leetcode

题目来源:1997. 访问完所有房间的第一天

解法1:动态规划

在这里插入图片描述

状态转移:

在这里插入图片描述

代码:

/*
 * @lc app=leetcode.cn id=1997 lang=cpp
 *
 * [1997] 访问完所有房间的第一天
 */

// @lc code=start
class Solution
{
private:
    const int mod = 1e9 + 7;

public:
    int firstDayBeenInAllRooms(vector<int> &nextVisit)
    {
        int n = nextVisit.size();
        // dp[i]: 从 0 号房间出发首次到 i+1 花费的天数
        vector<int> dp(n);
        // 初始化
        dp[0] = 2; // 初始化原地待一天 + 访问下一个房间一天
        // 状态转移
        for (int i = 1; i < n; i++)
        {
            int to = nextVisit[i];
            dp[i] = 2 + dp[i - 1];

            if (to != 0)
            {
                dp[i] = (dp[i] - dp[to - 1] + mod) % mod; // 避免负数
            }
            dp[i] = (dp[i] + dp[i - 1]) % mod;
        }
        return dp[n - 2]; // 题目保证n >= 2
    }
};
// @lc code=end

结果:

在这里插入图片描述

复杂度分析:

时间复杂度:O(n),其中 n 是数组 nextVisit 的元素个数。

空间复杂度:O(n),其中 n 是数组 nextVisit 的元素个数。

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

探索定制化创新,定制你的Jetson Linux驱动开发之旅!

Jetson驱动定制开发 Jetson linux驱动定制开发 在数字创新的浪潮中&#xff0c;Jetson系列为我们带来了无限的可能性。然而&#xff0c;要想真正发挥这种潜力&#xff0c;我们需要更多的自由和个性化。现在&#xff0c;通过定制化的Jetson Linux驱动开发&#xff0c;你可以实…

MYSQL8最新安装教程 ! ! !

MYSQL8最新安装教程 安装配置MySql一、下载MySql进入官网&#xff1a;https://dev.mysql.com 二、新建文件夹管理Mysql系列文件三、配置my.ini文件四、执行数据库初始化命令五、基础配置六、配置系统环境变量 可能会遇到无法启动MYSQL服务的问题:一、尝试删除MySQL服务&#xf…

揭秘:为何单点登陆方案(SSO)已无法满足现代企业的身份管理需求,统一身份中台才是未来

在信息化建设的浪潮中&#xff0c;企业面临着越来越多的应用系统管理和用户身份认证问题。许多企业最初可能认为&#xff0c;单点登录&#xff08;SSO&#xff09;系统就是他们所需要的解决方案&#xff0c;用以简化用户在多个系统间的登录过程。然而&#xff0c;随着业务的发展…

正大国际:黄金投资稳定与保值的避险之选

黄金作为备受投资者追捧的贵金属&#xff0c;在金融市场中扮演着重要的角色。黄金作为一种避险资产具有稳定性和保值特性&#xff0c;能够在市场动荡时提供投资者的资金保护&#xff0c; 正大召煮4/26/12 xiaoccsw 避险需求:当股票市场、货币市场或其他资产类别表现不佳时&a…

电脑关机速度很慢怎么解决?

给电脑关机,总是要很久才完全关闭。这是因为计算机运行了太长时间,并且打开的程序太多,则关闭时间超过十秒钟,这是正常的现象。还有就是计算机升级或补丁程序更新也将导致计算机缓慢关闭。此时,建议耐心等待关闭完成。还有可能是系统故障了。接下来分享电脑关机速度很慢怎…

高中数学:零点综合题型(拔高)

一、零点与交点 关键原则 1、数形结合 2、方程思想 例题1 解题思路 1、函数转化成方程 2、零点问题转化成交点问题 3、数形结合 4、对数运算法则&#xff08;函数值的和 转化成 x的积&#xff09; 二、分段函数零点 关键原则 1、分段函数分段看 2、数形结合 3、零点转交点…

springboot多模块

这里springboot使用idea中的 Spring Initializr 来快速创建。 一、demo 1、创建父项目 首先使用 Spring Initializr 来快速创建好一个父Maven工程。然后删除无关的文件&#xff0c;只需保留pom.xml 文件。 &#xff08;1&#xff09;new Project -> spring initializr快…

Java设计模式之装饰器模式

装饰器模式是一种结构型设计模式&#xff0c;它允许动态地将责任附加到对象上。装饰器模式是通过创建一个包装对象&#xff0c;也就是装饰器&#xff0c;来包裹真实对象&#xff0c;从而实现对真实对象的功能增强。装饰器模式可以在不修改原有对象的情况下&#xff0c;动态地添…

李宏毅深度强化学习导论——策略梯度

引言 这是李宏毅老师深度强化学习视频的学习笔记&#xff0c;主要介绍策略梯度的概念&#xff0c;在上篇文章的末尾从交叉熵开始引入策略梯度。 如何控制你的智能体 上篇文章末尾我们提到了两个问题&#xff1a; 如何定义这些分数 A A A&#xff0c;即定义奖励机制&#xff…

Nmap扫描工具流量特征

如果Nmap扫描探测服务过程中如有HTTP协议&#xff0c;则User-Agent也会有明显的特征。例如会出现nmap关键字。 但是User-Agent可以被修改&#xff0c;如果被修改的话&#xff0c;我们可以通过告警的次数进行判断&#xff08;同一源IP&#xff09;&#xff0c;看是否是大量的扫描…

产品经理与产品原型

1. 前言 互联网产品经理在向技术部门递交产品策划方案时,除了详尽的需求阐述,一份清晰易懂的产品原型设计方案同样不可或缺。一份出色的原型设计,不仅能促进前期的深入讨论,更能让美工和开发人员更直观地理解产品特性,进而优化工作流程,减少不必要的时间消耗,提升整体工…

主流公链 - BCH BSV BTG

为什么出现分叉 BTC是自由的&#xff0c;BTC社区也是自由的&#xff0c;自然而然的会出现不同观点的群体 1. 比特币现金&#xff08;Bitcoin Cash&#xff0c;BCH&#xff09; 分叉日期&#xff1a; 2017年8月1日主要目的&#xff1a; 提高比特币的交易吞吐量和降低交易费用技术…

ActiveMQ Artemis 系列| High Availability 主备模式(消息复制) 版本2.19.1

一、ActiveMQ Artemis 介绍 Apache ActiveMQ Artemis 是一个高性能的开源消息代理&#xff0c;它完全符合 Java Message Service (JMS) 2.0 规范&#xff0c;并支持多种通信协议&#xff0c;包括 AMQP、MQTT、STOMP 和 OpenWire 等。ActiveMQ Artemis 由 Apache Software Foun…

如何解决了“该虚拟机似乎正在使用中”问题

一、问题描述 1、在用VMware虚拟机的时候&#xff0c;有时会发现打开虚拟机时提示“该虚拟机似乎正在使用中。如果该虚拟机未在使用&#xff0c;请按“获取所有权(T)”按钮获取它的所有权。否则&#xff0c;请按“取消©”按钮以防损坏。配置文件: D:\win10x64\Windows 10…

Calico配置路由反射器 (RR) 模式

RR介绍 在 Calico 网络中&#xff0c;默认使用 Node-to-Node Mesh 全互联模式&#xff0c;即集群中的每个节点之间都会相互建立 BGP 连接&#xff0c;用于路由交换。然而&#xff0c;随着集群规模的扩大&#xff0c;全互联模式会导致连接数成倍增加&#xff0c;产生性能问题。为…

C++:梦的开始——创建第一个hello world(1)

我这里使用的编写代码的工具是Start Experimental Instance of Visual Studio 2022 你可以去微软的官网上寻找&#xff0c;并且安装 部署项目 项目就是一个文件夹&#xff0c;他将我们的数据都放到了里面&#xff0c;这就是一个项目 在Visual Studio 2022中 选择c 的空项目&a…

【python】flask模板渲染引擎Jinja2,流程控制语句与过滤器的用法剖析与实战应用

✨✨ 欢迎大家来到景天科技苑✨✨ &#x1f388;&#x1f388; 养成好习惯&#xff0c;先赞后看哦~&#x1f388;&#x1f388; &#x1f3c6; 作者简介&#xff1a;景天科技苑 &#x1f3c6;《头衔》&#xff1a;大厂架构师&#xff0c;华为云开发者社区专家博主&#xff0c;…

抖店怎么找达人?对接达人的方法是什么?如何建立沟通?

我是电商珠珠 大部分商家在找达人的时候&#xff0c;要么达人不理&#xff0c;要么被骗样品。总之&#xff0c;找了很多达人&#xff0c;一周能联系上的也许只有一两个&#xff0c;甚至一个都没有。尤其一些新手商家&#xff0c;连怎么找达人都不知道。 今天&#xff0c;我就…

球面数据的几何深度学习--球形 CNN

目录 一、说明二、球形 CNN概述三、球面数据的对称性四、标准&#xff08;平面&#xff09;CNN的局限性五、卷积并发症六、球面卷积七、球面卷积是不够的 一、说明 球面数据的几何深度学习–球形 CNN。通过对物理世界的平移对称性进行编码&#xff0c;卷积神经网络 &#xff0…

C++中 eigen(一)建造向量

快速上手&#xff1a; https://eigen.tuxfamily.org/dox/group__QuickRefPage.html 文档&#xff1a; https://eigen.tuxfamily.org/dox/index.html Constructors 建造 向量 Vectors 向量 例如&#xff0c;方便的 typedef Vector3f 是一个包含 3 个浮点数的&#xff08;列&a…