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;
};
相关推荐
itman30130 分钟前
C语言、C++与C#深度研究:从底层到现代开发演进全解析
c语言·c++·c·内存管理·编译模型
Hical_W2 小时前
为 C++ Web 框架设计三层 PMR 内存池:从原理到实战
c++·github
BestOrNothing_20152 小时前
C++零基础到工程实战(3.6):逻辑实战示例—日志模块
c++·命令行参数·main函数·switch case·逻辑判断·if else·enum class
t***5442 小时前
有哪些常见的架构设计模式在现代C++中应用
开发语言·c++
zopple3 小时前
汇编、C、C++和Java核心技术对比
c语言·汇编·c++
汉克老师4 小时前
GESP2024年3月认证C++三级( 第三部分编程题(1、字母求和)
c++·string·gesp三级·gesp3级·大小写判断
沐雪轻挽萤4 小时前
10. C++17新特性-保证的拷贝消除 (Guaranteed Copy Elision / RVO)
开发语言·c++
leaves falling5 小时前
C/C++ 的内存管理,函数栈帧详讲
java·c语言·c++
wuyoula5 小时前
AI导航智能决策系统源码 附教程
c++·tcp/ip·源码
浅念-5 小时前
从LeetCode入门位运算:常见技巧与实战题目全解析
数据结构·数据库·c++·笔记·算法·leetcode·牛客