当前位置: 首页 > news >正文

【动态规划】LeetCode-62.不同路径

🎈算法那些事专栏说明:这是一个记录刷题日常的专栏,每个文章标题前都会写明这道题使用的算法。专栏每日计划至少更新1道题目,在这立下Flag🚩
🏠个人主页:Jammingpro
📕专栏链接:算法那些事
🎯每日学习一点点,技术累计看得见

题目

题目描述

一个机器人位于一个 m x n 网格的左上角 (起始点在下图中标记为 “Start” )。
机器人每次只能向下或者向右移动一步。机器人试图达到网格的右下角(在下图中标记为 “Finish” )。
问总共有多少条不同的路径?

执行示例

示例 1:
输入:m = 3, n = 7
输出:28
在这里插入图片描述

示例 2:
输入:m = 3, n = 2
输出:3
解释:
从左上角开始,总共有 3 条路径可以到达右下角。
1.向右 -> 向下 -> 向下
2.向下 -> 向下 -> 向右
3.向下 -> 向右 -> 向下

示例 3:
输入:m = 7, n = 3
输出:28

示例 4:
输入:m = 3, n = 3
输出:6

提示

1 <= m, n <= 100
题目数据保证答案小于等于 2 * 1 0 9 10^9 109

题解

以示例1为例,因为机器人只能向右或向下移动,因而到达第0行和第0列各个方格的方法数均为1。而到达map[i][j]的方法数等于map[i-1][j]+map[i][j-1],即当前方格同一列的上一行方法数+当前方格同一行的前一列方法数加和。因为可以从上面一个方格向下走1步到达当前方格,也可以从左侧方格走1步到达当前方格。如下图所示,通过不断执行map[i][j]=map[i-1][j]+map[i][j-1],最终map[m-1][n-1]中将保存到达右下角方格的方法数。
在这里插入图片描述
从而我们可以得到如下代码↓↓↓

class Solution {
public:int uniquePaths(int m, int n) {vector<vector<int>>map(m,vector<int>(n));//将第0行初始化为1for(int i = 0; i < n; i++){map[0][i] = 1;}//将第0列初始化为1for(int i = 0; i < m; i++){map[i][0] = 1;}for(int i = 1; i < m; i++){for(int j = 1; j < n; j++){map[i][j]=map[i-1][j]+map[i][j-1];}}return map[m-1][n-1];}
};

这里我们使用了两次循环去初始化第0行和第0列,我们可以通过多开辟一行一列,并将map[0][1]初始化为1,这时,我们就不再需要初始化第1行第1列。而我们的结果保存在map[m][n]。
ps:这个方法很巧妙,就是不大好描述。大家看一下下方代码,大脑运行一下。↓↓↓

class Solution {
public:int uniquePaths(int m, int n) {vector<vector<int>>map(m + 1, vector<int>(n + 1));map[0][1] = 1;for(int i = 1; i <= m; i++)for(int j = 1; j <= n; j++)map[i][j] = map[i - 1][j] + map[i][j - 1];return map[m][n];}
};

本文存在不足,欢迎留言或私信批评、指正。希望我的解决方法能够对你有所帮助~~
今日打卡完成,点亮小星星☆→★

相关文章:

【动态规划】LeetCode-62.不同路径

&#x1f388;算法那些事专栏说明&#xff1a;这是一个记录刷题日常的专栏&#xff0c;每个文章标题前都会写明这道题使用的算法。专栏每日计划至少更新1道题目&#xff0c;在这立下Flag&#x1f6a9; &#x1f3e0;个人主页&#xff1a;Jammingpro &#x1f4d5;专栏链接&…...

对 Vision Transformers 及其基于 CNN-Transformer 的变体的综述

A survey of the Vision Transformers and its CNN-Transformer based Variants 摘要1、介绍2、vit的基本概念2.1 patch嵌入2.2 位置嵌入2.2.1 绝对位置嵌入(APE)2.2.2 相对位置嵌入(RPE)2.2.3卷积位置嵌入(CPE) 2.3 注意力机制2.3.1多头自我注意(MSA) 2.4 Transformer层2.4.1 …...

MongoDB简介

数据库&#xff0c;顾名思义&#xff0c;是保存数据的地方。中华文化博大精深&#xff0c;短短3个文字&#xff0c;就定义了一个强大的数据管理和读写方式出来。数据库&#xff0c;管理的对象是数据。称为库&#xff0c;表示数据在库中有组织&#xff0c;相互之间有微妙的关系。…...

尚硅谷hadoop3.x课程部分资料文件下载,jdk,hadoopjar包

jdk文件百度云下载&#xff1a; 链接&#xff1a;https://pan.baidu.com/s/1MCiGRzOZY8rAFpRJwA3tdw 提取码&#xff1a;kphl hadoop的jar包&#xff1a; 最新版官网链接&#xff1a; Index of /dist/hadoop/core/stable (apache.org) 百度云下载&#xff0c;3.3.3版&#xf…...

vue el-radio-group多选封装及使用

基于Element UI库的Vue组件&#xff0c;实现了一个单选/多选框组合的效果&#xff0c;可以根据 type 属性的不同值来切换单选框&#xff08;默认&#xff09;和按钮式单选框/多选框。 创建组件index.vue (src/common-ui/radioGroup/index.vue) <template><el-radio-g…...

Kaggle-水果图像分类银奖项目 pytorch Densenet GoogleNet ResNet101 VGG19

一些原理文章 卷积神经网络基础&#xff08;卷积&#xff0c;池化&#xff0c;激活&#xff0c;全连接&#xff09; - 知乎 PyTorch 入门与实践&#xff08;六&#xff09;卷积神经网络进阶&#xff08;DenseNet&#xff09;_pytorch conv1x1_Skr.B的博客-CSDN博客GoogLeNet网…...

TPLink-Wr702N 通过OpenWrt系统打造打印服务器实现无线打印

最近淘到了一个TPLink-Wr702N路由器&#xff0c;而且里面已经刷机为OpenWrt系统了&#xff0c;刚好家里有一台老的USB打印机&#xff0c;就想这通过路由器将打印机改为无线打印机&#xff0c;一番折腾后&#xff0c;居然成功了&#xff0c;这里记录下实现过程&#xff0c;为后面…...

[UGUI]实现从一个道具栏拖拽一个UI道具到另一个道具栏

在Unity游戏开发中&#xff0c;实现UI道具的拖拽功能是一项常见的需求。本文将详细介绍如何使用Unity的UGUI系统和事件系统&#xff0c;实现从一个道具栏拖拽一个UI道具到另一个道具栏的功能。 一、准备工作 首先&#xff0c;你需要在Unity中创建两个道具栏和一些UI道具。道具…...

微服务--08--Seata XA模式 AT模式

提示&#xff1a;文章写完后&#xff0c;目录可以自动生成&#xff0c;如何生成可参考右边的帮助文档 文章目录 分布式事务Seata 1.XA模式1.1.两阶段提交1.2.Seata的XA模型1.3.优缺点 AT模式2.1.Seata的AT模型2.2.流程梳理2.3.AT与XA的区别 分布式事务 > 事务–01—CAP理论…...

Doris 数据导入一:Broker Load 方式

1.Doris导入数据的方式总结 导入(Load)功能就是将用户的原始数据导入到 Doris 中。导入成功后,用户即可通过 Mysql 客户端查询数据。为适配不同的数据导入需求,Doris 系统提供了6种不同的导入方式。每种导入方式支持不同的数据源,存在不同的使用方式(异步,同步)。 所有…...

docker踩坑记录:docker容器创建doris容器间无法通讯问题

背景&#xff1a; 开发大数据平台&#xff0c;使用doris作为数据仓储&#xff0c;使用docker做集群部署&#xff0c;先进行开发环境搭建&#xff0c;环境为BE1;FE1&#xff0c;原来使用官方例子&#xff0c;但是官方例子是创建了一个bridge使用172.20.80.0/24通讯&#xff0c;…...

springboot+java校园自助洗衣机预约系统的分析与设计ssm+jsp

洗衣服是每个人都必须做的事情&#xff0c;而洗衣机更成为了人们常见的电器&#xff0c;但是单个洗衣机价格不菲&#xff0c;如果每人都买&#xff0c;就会造成资源的冗余。所有就出现了公用设备&#xff0c;随着时代的发展&#xff0c;很多公用都开始向着无人看守的自助模式经…...

TCP简介及特性

1. TCP协议简介 TCP是Transmission Control Protocol的简称&#xff0c;中文名是传输控制协议。它是一种面向连接的、可靠的、基于IP的传输层协议。两个TCP应用之间在传输数据的之前必须建立一个TCP连接&#xff0c;TCP采用数据流的形式在网络中传输数据。TCP为了保证报文传输的…...

ElasticSearch 排障常用方法

文章目录 1&#xff0c;集群状态&#xff0c;节点在线情况&#xff0c;集群参数配置2&#xff0c;查看异常索引、分片&#xff0c;分析异常原因&#xff0c;手动分配分片 1&#xff0c;集群状态&#xff0c;节点在线情况&#xff0c;集群参数配置 GET _cluster/health?pretty…...

【SA8295P 源码分析 (四)】136 - QNX 如何抓取系统 log 方法 之 网络部分日志抓取方法

【SA8295P 源码分析】136 - QNX 如何抓取系统 log 方法 之 网络部分日志抓取方法 一、slog2info二、获取当前系统网络信息三、tracelogger四、qscan.sh : 用于收集 qnx 文件系统 权限、checksums 等信息系列文章汇总见:《【SA8295P 源码分析 (四)】网络模块 文章链接汇总 - 持…...

传统算法:使用Pygame实现SVM(支持向量机)算法

使用 Pygame 演示了支持向量机(SVM)在二维数据上的分类过程。以下是代码的主要步骤和原理解释: 1、初始化和基本设置 Pygame 初始化: 通过 pygame.init() 初始化 Pygame。 定义颜色和屏幕大小: 定义了一些颜色常量(WHITE, BLACK, RED, BLUE)和屏幕的宽度和高度。 创建…...

cookie wzws_sess** 逆向

声明 本文章中所有内容仅供学习交流&#xff0c;抓包内容、敏感网址、数据接口均已做脱敏处理&#xff0c;严禁用于商业用途和非法用途&#xff0c;否则由此产生的一切后果均与作者无关&#xff0c;若有侵权&#xff0c;请联系我立即删除&#xff01; 网站&#xff1a; aHR0…...

JIRA 基本使用

该页面可以&#xff1a; 查看个人基本信息以及归属的邮件组修改常用参数配置查看指给自己的 Open 问题查看自己最近的活动记录等 权限管理 Project 权限管理 JIRA 项目有三种通用权限方案&#xff1a; 公开权限方案&#xff08;默认禁止使用此方案&#xff09;&#xff1a…...

什么是JVM的内存模型?详细阐述Java中局部变量、常量、类名等信息在JVM中的存储位置

导航&#xff1a; 【Java笔记踩坑汇总】Java基础JavaWebSSMSpringBootSpringCloud瑞吉外卖/黑马旅游/谷粒商城/学成在线设计模式面试题汇总性能调优/架构设计源码-CSDN博客 目录 一、JVM基本介绍 二、JVM内存模型 2.0 概述 2.1 类加载子系统 2.2 运行时数据区 2.2.0 基本…...

c#学习相关系列之as和is的相关用法

一、子类和父类的关系 public class Program{static void Main(string[] args){Animal animal new Dog();// Dog dog (Dog)new Animal(); 编译成功&#xff0c;运行报错Dog dog (Dog)animal;Dog dog new Dog();Animal animal dog; //等价于Animal animal new Dog();}}pub…...

K8s定时任务实战:如何用CronJob每分钟输出Hello World(附表达式详解)

K8s定时任务实战&#xff1a;从Hello World到生产级CronJob配置 在云原生技术栈中&#xff0c;定时任务作为自动化运维的核心组件&#xff0c;其重要性不言而喻。Kubernetes提供的CronJob资源&#xff0c;让开发者能够以声明式的方式管理周期性任务&#xff0c;而无需依赖传统…...

Ostrakon-VL像素终端效果展示:8-bit风格UI下高精度OCR识别动图

Ostrakon-VL像素终端效果展示&#xff1a;8-bit风格UI下高精度OCR识别动图 1. 像素特工终端概览 在零售与餐饮行业的数字化转型浪潮中&#xff0c;我们开发了这款基于Ostrakon-VL-8B多模态大模型的Web交互终端。与传统工业级UI不同&#xff0c;这款终端采用了充满活力的8-bit…...

Phi-4-mini-reasoning企业落地:金融风控规则推理+合规性自动校验

Phi-4-mini-reasoning企业落地&#xff1a;金融风控规则推理合规性自动校验 1. 模型概述与金融场景价值 Phi-4-mini-reasoning是微软推出的3.8B参数轻量级开源模型&#xff0c;专为数学推理、逻辑推导和多步解题等强逻辑任务设计。在金融领域&#xff0c;这个"小参数、强…...

Phi-4-mini-reasoning真实案例:GPT-4对比测试中更优的确定性推理表现

Phi-4-mini-reasoning真实案例&#xff1a;GPT-4对比测试中更优的确定性推理表现 1. 模型介绍 Phi-4-mini-reasoning是一款专注于推理任务的文本生成模型&#xff0c;特别擅长处理需要多步逻辑推导的问题。与通用聊天模型不同&#xff0c;它被设计用来解决数学题、逻辑题等需…...

解锁Unity游戏定制潜能:MelonLoader全方位应用指南

解锁Unity游戏定制潜能&#xff1a;MelonLoader全方位应用指南 【免费下载链接】MelonLoader The Worlds First Universal Mod Loader for Unity Games compatible with both Il2Cpp and Mono 项目地址: https://gitcode.com/gh_mirrors/me/MelonLoader 副标题&#xff…...

从稀疏点云到动态环境:八叉树地图在视觉SLAM中的核心构建与应用

1. 八叉树地图&#xff1a;视觉SLAM的"三维记事本" 想象一下你第一次走进一个陌生商场时的场景&#xff1a;眼睛快速扫描扶梯位置&#xff0c;大脑自动标记洗手间标识&#xff0c;同时避开行走的人群——这个过程本质上就是人类版的SLAM&#xff08;同步定位与地图构…...

告别手动调参!用Simulink扫频法+PID Tuner,10分钟搞定升降压电路的PI控制器设计

10分钟自动化PI设计&#xff1a;Simulink扫频与PID Tuner在升降压电路中的实战技巧 电力电子工程师们对这样的场景一定不陌生&#xff1a;面对一个全新的升降压电路拓扑&#xff0c;为了获得稳定的输出电压&#xff0c;不得不花费数小时甚至数天时间反复调整PI控制器的参数。传…...

突破限制:NCM音乐格式转换与跨平台播放完全指南

突破限制&#xff1a;NCM音乐格式转换与跨平台播放完全指南 【免费下载链接】ncmdump 项目地址: https://gitcode.com/gh_mirrors/ncmd/ncmdump 音乐文件解密是许多音乐爱好者面临的实际需求&#xff0c;尤其是当你希望在不同设备上自由播放从网易云音乐下载的NCM格式文…...

矿井排水系统直接关系到煤矿安全生产,今天咱们掰开揉碎了聊聊西门子S7-200 PLC控制三台水泵的实战经验。老规矩,先上干货再说原理

基于西门子PLC的煤矿排水系统控制&#xff0c;内容包括 [1]S7-200 PLC程序[2]MCGS6.2组态画面[3]电气图纸精品文档 共有3台水泵进行矿井排水&#xff0c;分别为1号水泵&#xff0c;2号水泵&#xff0c;3号水泵 其中1号&#xff0c;2号水泵是工作水泵&#xff0c;3号水泵是备用水…...

Qwen3智能字幕对齐系统与Dify工作流集成:打造自动化视频内容生产线

Qwen3智能字幕对齐系统与Dify工作流集成&#xff1a;打造自动化视频内容生产线 1. 引言 你有没有算过&#xff0c;一个视频剪辑师一天要花多少时间在字幕上&#xff1f;从听写、校对、再到调整时间轴&#xff0c;一个十分钟的视频&#xff0c;光是字幕可能就要耗掉一两个小时…...