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

leetcode hot100刷题日记——21.不同路径

在这里插入图片描述
和20题一样的思路link
题解:

class Solution {
public:int dfs(int i,int j,vector<vector<int>>&memo){//超过了边界,return 0if(i<0||j<0){return 0;}//从(0,0)到(0,0)只有一条路if(i==0&&j==0){return 1;}int &res=memo[i][j];//看之前有没有走过if(res){return res;//如果走过}return res=dfs(i-1,j,memo)+dfs(i,j-1,memo);}int uniquePaths(int m, int n) {vector memo(m,vector<int>(n));//用m行n列的数组存位置状态return dfs(m-1,n-1,memo);}
};
class Solution {
public:int uniquePaths(int m, int n) {//dp[i][j]=dp[i-1][j]+dp[i][j-1]//即:dp[i+1][j+1]=dp[i][j+1]+dp[i+1][j]vector dp(m+1,vector<int>(n+1));for(int i=0;i<m;i++){for(int j=0;j<n;j++){if(i==0&&j==0){dp[1][1]=1;//其实看成左上角顶点是(1,1),只有1种方法走到}else{dp[i+1][j+1]=dp[i][j+1]+dp[i+1][j];//假设i=0,j=1,dp[1][2]=dp[0][2]+dp[1][1]//这个时候其实是要走到顶点处下面一格,那么很容易知道dp[0][j]和dp[i][0]都必须是0//因为超过边界了,我们在初始化dp数组的时候,dp数组全是0,所以已经包含了以上}}}return dp[m][n];}
};
http://www.lryc.cn/news/2387506.html

相关文章:

  • Elasticsearch 如何实现跨数据中心的数据同步?
  • C语言学习笔记三 --- V
  • 通过JS模板引擎实现动态模块组件(Vite+JS+Handlebars)
  • 梯度消失和梯度爆炸的原因及解决办法
  • 欧拉定理:若 gcd(a,n)=1,则 a^φ(n)≡1(mod n)。
  • fvm install 下载超时 过慢 fvm常用命令、flutter常用命令
  • Python正则表达式:30秒精通文本处理
  • Introduction to SQL
  • 计算机视觉---YOLOv3
  • #RabbitMQ# 消息队列进阶
  • React从基础入门到高级实战:React 核心技术 - React Router:路由管理
  • 【深度学习】损失“三位一体”——从 Fisher 的最大似然到 Shannon 的交叉熵再到 KL 散度,并走进 PET·P-Tuning微调·知识蒸馏的实战
  • 5 分钟速通密码学!
  • Linux——IP协议
  • Lua 脚本在 Redis 中的运用-24 (使用 Lua 脚本实现原子计数器)
  • Linux信号量(32)
  • 技术视界 | 打造“有脑有身”的机器人:ABC大脑架构深度解析(上)
  • 使用堡塔和XShell
  • 软件项目交付阶段,验收报告记录了什么?有哪些标准要求?
  • LightGBM的python实现及参数优化
  • 封装渐变堆叠柱状图组件附完整代码
  • 分布式项目保证消息幂等性的常见策略
  • 山东大学软件学院创新项目实训开发日志——第十三周
  • 如何在sublime text中批量为每一行开头或者结尾添加删除指定内容
  • Cesium 透明渐变墙 解决方案
  • 网络原理与 TCP/IP 协议详解
  • day022-定时任务-故障案例与发送邮件
  • 新增 git submodule 子模块
  • List优雅分组
  • Linux 使用 Docker 安装 Milvus的两种方式