1269. 停在原地的方案数

news2024/7/6 19:17:01

链接:

​​​​​​1269. 停在原地的方案数

题解:坐标型动态规划

class Solution {
public:
    int numWays(int steps, int arrLen) {
        if (arrLen <= 0) {
            return 0;
        }
        // 因为需要返回到0下标位置所以,最远也就是一半
        int len = std::min(steps/2+1, arrLen);
        // 走了多少步,到达当前下标dp[step][j],有多少种
        std::vector<std::vector<int>> dp(steps+1, std::vector<int>(len, 0));
        // 从上一步得来,
        std::vector<std::vector<int>> direction{{-1, 0}, {-1, -1}, {-1, 1}};
        dp[0][0] = 1;
        int MOD = 1000000007;
        for (int i = 1; i <= steps; ++i) {
            for (int j = 0; j < len; ++j) {
                for (auto& direc : direction) {
                    int prev_row = i + direc[0];
                    int prev_col = j + direc[1];
                    if (prev_row < 0 || prev_col < 0 || prev_col >= len) {
                        continue;
                    }
                    dp[i][j] = (dp[i][j] + dp[prev_row][prev_col]) % MOD;
                }
            }
        }
        return dp[steps][0];
    }
};
class Solution {
public:
    int numWays(int steps, int arrLen) {
        if (arrLen <= 1) {
            return 1;
        }
        int MOD = 1000000007;
        int len = std::min(steps/2+1, arrLen);
        std::vector<std::vector<int>> dp(steps+1, std::vector<int>(len, 0));
        dp[0][0] = 1;
        for (int step = 1; step <= steps; ++step) {
            dp[step][0] = (dp[step-1][0] + dp[step-1][1])%MOD;
            dp[step][len-1] = (dp[step-1][len-1] + dp[step-1][len-2])%MOD;
            for (int i = 1; i < len-1; ++i) {
                dp[step][i] = ((dp[step-1][i-1] + dp[step-1][i])%MOD + dp[step-1][i+1])%MOD;
            }
        }
        return dp[steps][0];
    }
};

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【福建事业单位-公共基础-】01哲学基本概述和唯物论

【福建事业单位-公共基础-】01哲学基本概述和唯物论 一、哲学基本概述二、辩证唯物论&#xff08;1题&#xff09; 相关考点 一、哲学基本概述 向导、导向、指导&#xff0c;都是中性词&#xff0c;都可以&#xff1b;但是先导是褒义词&#xff0c;要跟上真正的哲学&#xff1…

免费Scrum敏捷开发工具管理敏捷项目

Scrum中非常强调公开、透明、直接有效的沟通&#xff0c;这也是“可视化的管理工具”在敏捷开发中如此重要的原因之一。通过“可视化的管理工具”让所有人直观的看到需求&#xff0c;故事&#xff0c;任务之间的流转状态&#xff0c;可以使团队成员更加快速适应敏捷开发流程。 …

YOLOv5算法改进(1)— 如何去改进YOLOv5算法

前言&#xff1a;Hello大家好&#xff0c;我是小哥谈。YOLOv5基础知识入门系列、YOLOv5源码中的参数超详细解析系列和YOLOv5入门实践系列学习完成之后&#xff0c;接着就进入YOLOv5进阶改进算法系列了。&#x1f389;为了让大家能够清楚地了解如何去改进YOLOv5算法以及从哪几方…

【Visual Studio Code】--- Win11 配置 VS Code 为中文 超详细

Win11 配置 VS Code 为中文 超详细 一、概述二、重要提示二、配置 VS Code 为中文 一、概述 一个好的文章能够帮助开发者完成更便捷、更快速的开发。书山有路勤为径&#xff0c;学海无涯苦作舟。我是秋知叶i、期望每一个阅读了我的文章的开发者都能够有所成长。 二、重要提示…

【数理知识】向量的坐标基表示法,Matlab 代码验证

序号内容1【数理知识】向量的坐标基表示法&#xff0c;Matlab 代码验证2【数理知识】向量与基的内积&#xff0c;Matlab 代码验证 文章目录 1. 向量的坐标基表示2. 二维平面向量举例3. Matlab 代码验证Ref 1. 向量的坐标基表示 假设空间中存在一个向量 a ⃗ \vec{a} a &#…

2023讯飞AI开发者大赛-基于可见光图像的柑橘花果梢语义分割挑战赛-初赛记录

初识数据 注册账号后下载数据集 文件目录如下&#xff1a; test中image有75张图片&#xff0c;train中image有225张图&#xff0c;对应json中的225个标注文件&#xff0c;是labelme导出的。训练&#xff1a;测试 遵循3&#xff1a;1原则。 图片分辨率为608*608&#xff1b; …

到江西赣州ibm维修服务器之旅-联想X3850 x6黄灯故障

2023年08月15日&#xff0c;一位江西赣州工厂客户通过朋友介绍与冠峰售前工程师取得联系&#xff0c;双方对产品故障前后原因沟通的大致情况如下&#xff1a; 服务器型号&#xff1a;Lenovo system x3850 x6 为用户公司erp仓库服务器 服务器故障&#xff1a;正常使用过程中业…

YOLOV8改进:加入RCS-OSA模块,提升检测速度

1.该文章属于YOLOV5/YOLOV7/YOLOV8改进专栏,包含大量的改进方式,主要以2023年的最新文章和2022年的文章提出改进方式。 2.提供更加详细的改进方法,如将注意力机制添加到网络的不同位置,便于做实验,也可以当做论文的创新点。 2.涨点效果:RCS-OSA模块更加轻量化,有效提升检…

广联达OA前台sql注入+后台文件上传漏洞复现分析

文章目录 前言资产特征前台sql注入后台文件上传解决办法 前言 最近看到广联达OA的前端sql注入和后端文件上传漏洞联动的poc 广联达科技股份有限公司以建设工程领域专业应用为核心基础支撑&#xff0c;提供一百余款基于“端云大数据”产品/服务&#xff0c;提供产业大数据、产业…

力扣 198. 打家劫舍

题目来源&#xff1a;https://leetcode.cn/problems/house-robber/description/ C题解&#xff1a;因为是间接偷窃&#xff0c;所以偷nums[i]家前&#xff0c;一定偷过第i-2或者i-3家&#xff0c;因为i-1不能偷。 例如12345共5家&#xff0c;先偷第1家&#xff0c;那么2不能偷…

ChatGLM-RLHF(七)-PPO实践(Proximal Policy Optimization)原理实现代码逐行注释

从open AI 的论文可以看到&#xff0c;大语言模型的优化&#xff0c;分下面三个步骤&#xff0c;SFT&#xff0c;RM&#xff0c;PPO&#xff0c;我们跟随大神的步伐&#xff0c;来学习一下这三个步骤和代码实现&#xff0c;本章介绍PPO实践。 生活中&#xff0c;我们经常会遇到…

水库大坝安全监测MCU,提升大坝管理效率的利器!

水库大坝作为防洪度汛的重要设施&#xff0c;承担着防洪抗旱&#xff0c;节流发电的重要作用。大坝的安全直接关系到水库的安全和人民群众的生命财产安全。但因为水库大坝的隐患不易被察觉&#xff0c;发现时往往为时已晚。因此&#xff0c;必须加强对大坝的安全管理。其安全监…

最长递增子序列——力扣300

int lengthOfLIS(vector<int>& nums) {int len=1, n=nums.size();if

MCA Recovery简介

概述 1、MCA Recovery – Execution Path 软件层辅助从不可纠正的数据错误恢复&#xff1b; 1&#xff09;处理器识别到硬件不可纠正错误&#xff0c;打上数据腐烂标签&#xff0c;事件交由固件或OS处理。 2&#xff09;如果固件/OS有冗余数据备份&#xff0c;可以被纠正&#…

图像去雨、去雪、去雾论文学习记录

All_in_One_Bad_Weather_Removal_Using_Architectural_Search 这篇论文发表于CVPR2020&#xff0c;提出一种可以应对多种恶劣天气的去噪模型&#xff0c;可以同时进行去雨、去雪、去雾操作。但该部分代码似乎没有开源。 提出的问题&#xff1a; 当下的模型只能针对一种恶劣天气…

基于主题的情绪分析:将主题建模与情绪分析联系起来

一、说明 朋友们&#xff0c;大家好&#xff01;现在我们学习了如何在Twitter数据上进行主题建模和情感分析&#xff0c;但我们还没有将这两种技术联系在一起。我们如何获得与每个主题相对应的情绪&#xff1f;在这篇文章中&#xff0c;我将向您展示进行基于主题的情绪分析的方…

Kubernetes 企业级高可用部署

1、Kubernetes高可用项目介绍 单master节点的可靠性不高&#xff0c;并不适合实际的生产环境。Kubernetes 高可用集群是保证 Master 节点中 API Server 服务的高可用。API Server 提供了 Kubernetes 各类资源对象增删改查的唯一访问入口&#xff0c;是整个 Kubernetes 系统的数…

云原生 AI 工程化实践之 FasterTransformer 加速 LLM 推理

作者&#xff1a;颜廷帅&#xff08;瀚廷&#xff09; 01 背景 OpenAI 在 3 月 15 日发布了备受瞩目的 GPT4&#xff0c;它在司法考试和程序编程领域的惊人表现让大家对大语言模型的热情达到了顶点。人们纷纷议论我们是否已经跨入通用人工智能的时代。与此同时&#xff0c;基…

linux pwn 相关工具

环境搭建 虚拟机安装 镜像下载网站为了避免环境问题建议 22.04 &#xff0c;20.04&#xff0c;18.04&#xff0c;16.04 等常见版本 ubuntu 虚拟机环境各准备一份。注意定期更新快照以防意外。虚拟机建议硬盘 256 G 以上&#xff0c;内存也尽量大一些。硬盘大小只是上界&#…

RocketMQ、Dashboard部署以及安全设置

RocketMQ、dashboard部署以及安全设置 一、启动RocketMQ1.1 下载RocketMQ1.2 修改配置文件1.2.1 修改nameServer Jvm内存配置1.2.2 修改broker参数 1.3 启动1.3.1 启动NameServer1.3.2 启动Broker1.3.3 测试是否启动成功1.3.3.1 测试消息发送1.3.3.2 测试消息接收1.3.3.3 Java程…