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

leetcode 62 不同路径

一、题目描述

二、解题思路

(1)解法一:深度优先搜索

1>函数功能:dfs函数用于从(i,j)位置开始,寻找到达终点(m-1,n-1)的路径条数;

2>递归出口:当i==m-1&&j==n-1时,表示找到了一条路径,ret++,然后return;

3>函数体:按照下、右的顺序进行探索,如果(x,y)未越界就对(x,y)位置递归调用dfs函数。

(2)解法二:直接递归

由于只能向下和向右走,所以只有从上面块和左边块才能到达现在所在的块,uniquePaths(i,j)表示到达(i,j)位置的路径的数量,则uniquePaths(i,j)=uniquePaths(i-1,j)+uniquePaths(i,j-1)。

(3)解法三:记忆化搜索

由于解法二在计算的过程中存在大量的重复计算,所以可以采用记忆化搜索的方法,把计算的结果记录下来,避免重复计算。

(4)解法四:动态规划

dp[i][j]的值表示从(0,0)到终点(i,j)的路径的条数,dp[i][j]=dp[i-1][j]+dp[i][j-1]

三、代码实现

解法一:深度优先搜索(超时)

class Solution {int ret=0;
public:int uniquePaths(int m, int n) {dfs(0,0,m,n);return ret;}int dx[2]={1,0};int dy[2]={0,1};void dfs(int i,int j,int m,int n){//递归出口if(i==m-1&&j==n-1){ret++;return ;}for(int k=0;k!=2;k++){int x=i+dx[k];int y=j+dy[k];if(x>=0&&x<m&&y>=0&&y<n)dfs(x,y,m,n);}}
};

解法二:直接递归(超时)

class Solution {
public:int uniquePaths(int m, int n) {//边界处理if(m==1||n==1) return 1;return uniquePaths(m-1,n)+uniquePaths(m,n-1);}
};

解法三:记忆化搜索

class Solution {vector<vector<int>> memo;
public:int uniquePaths(int m, int n) {//边界处理if(m==1||n==1) return 1;memo.resize(m+1,vector(n+1,-1));for(int i=0;i<=n;i++) memo[0][i]=1;for(int j=0;j<=m;j++) memo[j][0]=1;return dfs(m-1,n-1);}int dfs(int m,int n){//查找备忘录if(memo[m][n]!=-1)  return memo[m][n];else{memo[m][n]=dfs(m-1,n)+dfs(m,n-1);return memo[m][n];}}
};

解法四:动态规划

class Solution {
public:int uniquePaths(int m, int n) {vector<vector<int>> dp(m,vector(n,-1));//填写dp数组for(int i=0;i!=m;i++) dp[i][0]=1;for(int j=0;j!=n;j++) dp[0][j]=1;for(int row=1;row!=m;row++)for(int col=1;col!=n;col++)dp[row][col]=dp[row-1][col]+dp[row][col-1];return dp[m-1][n-1];}
};

http://www.dtcms.com/a/466269.html

相关文章:

  • GitHub fork仓库同步原仓库tags(标签)的详细教程
  • 岳阳品牌网站定制开发建站页面
  • 网站维护的协议给一个企业做网站
  • Servlet 调试
  • 《大模型赋能文化遗产数字化:古籍修复与知识挖掘的技术实践》
  • TSP问题1 NEURAL COMBINATORIAL OPTIMIZATION WITH REINFORCEMENT LEARNING
  • 代码随想录Day46|647. 回文子串、516.最长回文子序列
  • 钦州 网站建设全屋定制十大名牌口碑
  • 【MySQL】认识数据库以及MySQL安装
  • 网站建设网站软件有哪些内容金华网站建设seo
  • 做素描的网站鲜花网站建设文档
  • 从 PE 安装 Windows 系统全流程教程(适合U盘重装)
  • 自动下载ICLR论文
  • 导诊机器人如何提升三甲医院服务效能?
  • 北京网站模板下载品牌定位的三要素
  • 做游戏都需要什么网站微网站开发需要多少钱
  • 存储RAM/ROM硬件笔试真题解析
  • React.lazy 和 suspense 如何使用?
  • 深圳购物网站建设价格引流推广app
  • 【React】useMemo 和 useEffect 的用法
  • 网站建设微盘下载营销型网站建设范文
  • 3.1.4. Shell 函数的知识与实践
  • 双目测距-初识
  • C++开发基础之日期处理的全面指南:从C库到Chrono
  • 北京网站维护公司直通车优化推广
  • 大厂MongoDB开发运维规范
  • 公司网站可以自己做吗wex5可以做网站吗
  • 在浏览器上播放摄像头rtsp视频流的实现方案
  • LeetCode算法日记 - Day 67: 不同路径、最长递增子序列
  • 2024ICPC区域赛香港站