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;
};
相关推荐
zh路西法1 小时前
【3D SLAM源码解读系列】(二)Small_gicp——5 个积木搭出最优点云配准
c++·pcl·icp·fastgicp·smallgicp·gicp
fpcc3 小时前
ubuntu26环境下的开发环境安装处理
c++·并行编程
charlie1145141914 小时前
Cinux · 第一次跳进 Ring 3:用户态与特权隔离
开发语言·c++·操作系统·开源项目
别动我齐刘海4 小时前
机器学习基础2——C++、OpenCV、点云、Open3D
c++·人工智能·opencv·机器学习·计算机视觉·机器人·ros2
躺不平的理查德5 小时前
Windows C++ 第三方库使用流程备忘录--OpenCV
开发语言·c++
余额瞒着我当琳5 小时前
C++STL容器string--迭代器,string的接口,string的遍历,访问方式
c++
郭涤生5 小时前
rootfs 详解与裁剪优化记录
linux·c++·bsp
MC皮蛋侠客5 小时前
TDengine C++ 系列(6):高性能写入——参数绑定、批量与 Schemaless
c++·php·tdengine
小小龙学IT6 小时前
C++ std::vector 底层实现深度解析:内存布局、扩容策略、移动语义与迭代器失效
开发语言·c++·算法
noipp6 小时前
推荐题目:洛谷 P16689 出征
java·开发语言·数据结构·c++·算法·洛谷·luogu