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

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


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

代码如下:

cpp 复制代码
//动态规划
//参考leetcode官方题解
class Solution 
{
public:
    int firstDayBeenInAllRooms(vector<int>& nextVisit) 
    {
        //定义dp[i]表示从奇数次到房间i,到奇数次到达房间i+1所需要的天数
        vector<int> dp(nextVisit.size());
        dp[0]=2;//初始化原地待一天+访问下一个房间一天
        for(int i=1;i<nextVisit.size();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[nextVisit.size()-2];
    }
private:
    const int mod=1e9+7;
};
相关推荐
Wave84514 小时前
C++继承详解
开发语言·c++·算法
Tairitsu_H14 小时前
C++类基础概念:定义、实例化和this指针
开发语言·c++
不想写代码的星星14 小时前
C++17 string_view 观察报告:好用,但有点费命
c++
努力努力再努力wz14 小时前
【Linux网络系列】深入理解 I/O 多路复用:从 select 痛点到 poll 高并发服务器落地,基于 Poll、智能指针与非阻塞 I/O与线程池手写一个高性能 HTTP 服务器!(附源码)
java·linux·运维·服务器·c语言·c++·python
努力努力再努力wz14 小时前
【Linux网络系列】万字硬核解析网络层核心:IP协议到IP 分片重组、NAT技术及 RIP/OSPF 动态路由全景
java·linux·运维·服务器·数据结构·c++·python
minji...15 小时前
Linux 线程同步与互斥(四) POSIX信号量,基于环形队列的生产者消费者模型
linux·运维·服务器·c语言·开发语言·c++
王老师青少年编程15 小时前
csp信奥赛C++高频考点专项训练之贪心算法 --【排序贪心】:拼数
c++·算法·贪心·csp·信奥赛·排序贪心·拼数
程序猿编码15 小时前
给Linux程序穿“隐身衣”——ELF运行时加密器全解析(C/C++代码实现)
linux·c语言·c++·网络安全·elf·内存安全
John_ToDebug15 小时前
从 Win10 到 Win11 22H2+:任务栏美化中的“蒙版”和“Hover 色块”渲染原理解析
c++·chrome·windows
谭欣辰16 小时前
AC自动机:多模式匹配的高效利器
数据结构·c++·算法