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;
};
相关推荐
自动驾驶小卡2 小时前
boost::circular_buffer的使用方法简介
c++·boost·circular_buffer
睡不醒的kun4 小时前
leetcode算法刷题的第三十二天
数据结构·c++·算法·leetcode·职场和发展·贪心算法·动态规划
乔宕一6 小时前
stm32 链接脚本没有 .gcc_except_table 段也能支持 C++ 异常
c++·stm32·嵌入式硬件
SuperCandyXu6 小时前
P3205 [HNOI2010] 合唱队-普及+/提高
c++·算法·洛谷
_君落羽_6 小时前
ARM寄存器以及异常处理
c++
free7 小时前
基于librdkafa C++客户端生产者发送数据失败问题处理#2
c++·kafka
小柯J桑_7 小时前
Linux:线程封装
linux·运维·c++
doll ~CJ8 小时前
基于QVTKOpenGLNativeWidget的三维点云可视化实现
c++·qt·软件开发·三维点云可视化
42fourtytoo9 小时前
天津大学智算2026预推免机试第二批题目及代码c++
开发语言·c++·面试
子豪-中国机器人10 小时前
枚举算法和排序算法能力测试
开发语言·c++·算法