代码随想录算法【Day34】

news/2025/1/30 1:08:18/

Day34

62.不同路径

思路

第一种:深搜 -> 超时

第二种:动态规划

第三种:数论

动态规划代码如下:

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

五部曲

1.dp数组及下标定义:二维dp数组dp[i][j]表示从(0,0)出发,到(i,j)有dp[i][j]条不同的路径

2.递推公式:dp[i][j] = dp[i - 1][j] + dp[i][j - 1],即当前格子的值等于上面的格子和左边的格子的值的总和

3.初始化:将第一行和第一列初始为1

4.遍历顺序:从左到右一层一层往下遍历

5.数组的数据应该是怎样的:

62.不同路径1

63. 不同路径 II

思路

有障碍的话,其实就是标记对应的dp table(dp数组)保持初始值(0)就可以了。

class Solution {
public:int uniquePathsWithObstacles(vector<vector<int>>& obstacleGrid) {int m = obstacleGrid.size();int n = obstacleGrid[0].size();if (obstacleGrid[m - 1][n - 1] == 1 || obstacleGrid[0][0] == 1) //如果在起点或终点出现了障碍,直接返回0return 0;vector<vector<int>> dp(m, vector<int>(n, 0));for (int i = 0; i < m && obstacleGrid[i][0] == 0; i++) dp[i][0] = 1;for (int j = 0; j < n && obstacleGrid[0][j] == 0; j++) dp[0][j] = 1;for (int i = 1; i < m; i++) {for (int j = 1; j < n; j++) {if (obstacleGrid[i][j] == 1) continue;dp[i][j] = dp[i - 1][j] + dp[i][j - 1];}}return dp[m - 1][n - 1];}
};

五部曲

和上一题是一样的


http://www.ppmy.cn/news/1567762.html

相关文章

http3网站的设置(AI不会配,得人工配)

堡塔PHP项目中配置nginx1.26.0设置http3协议 # 文件所在服务器中的路径 /www/server/nginx/conf/nginx.confuser www www; worker_processes auto; error_log /www/wwwlogs/nginx_error.log crit; pid /www/server/nginx/logs/nginx.pid; worker_rlimit_nofile 512…

Hive详细讲解-调优分区表速通

文章目录 1.分区表和分桶表1分区表2.二级分区3.动态分区4.动态分区测试 2.分桶表1.基本语法2.分桶表导入数据3.分桶排序表 3.文件格式压缩4.hive文件格式4.1 text file&#xff08;默认文件格式&#xff09;4.2 orc文件 &#xff08;常用&#xff09;4.3 orc存储使用列存储&…

【数据分析】基础篇

不定期更新&#xff0c;建议关注、收藏、点赞&#xff01; 流程 明确目标 业务流程数据监控描述、市场宏观环境分析、竞品分析、数据探索挖掘获取数据 来源&#xff1a;数据库和日志、埋点需求前端埋点特殊数据、业务人员Excel表格、爬虫采集数据、公开数据集、商业平台导出的…

DeepseekMath:超强开源数学模型(论文详解)

摘要 近日&#xff0c;中国团队Deepseek推出了一款名为DeepSeekMath的7B开源数学模型&#xff0c;这个模型在数学方面的表现令人惊叹。DeepSeekMath 7 B在不依赖外部工具包和投票技术的情况下&#xff0c;在竞赛级MATH基准测试中获得了51.7%的分数&#xff0c;接近Gemini-Ultr…

解锁.NET Standard库:从0到1的创建与打包秘籍

一、引言 在当今的软件开发领域&#xff0c;跨平台开发已成为一种趋势。随着不同操作系统和设备的多样化&#xff0c;开发人员需要确保他们的代码能够在多个平台上运行&#xff0c;以满足更广泛的用户需求。.NET Standard 库应运而生&#xff0c;它定义了一组公共 API&#xf…

Tauri2+Leptos开发桌面应用--绘制图形、制作GIF动画和mp4视频

在之前工作&#xff08;Tauri2Leptos开发桌面应用--新建窗口、自定义菜单和多页面切换_tauri实现多窗口-CSDN博客&#xff09;的基础上继续尝试绘制图形、制作GIF动画和mp4视频 绘制图形主要尝试了两种方式&#xff0c;一种是调用python使用matplotlib模块绘制图形&#xff0c…

物业巡更系统在现代社区管理中的优势与应用探讨

内容概要 在现代社区管理中&#xff0c;物业巡更系统正逐渐成为一种不可或缺的工具。结合先进的智能技术&#xff0c;这些系统能够有效地提升社区管理的各个方面&#xff0c;尤其是在巡检效率和信息透明度方面。通过实时记录巡检数据&#xff0c;物业管理人员能够确保工作人员…

使用eNSP配置GRE VPN实验

实验拓扑 实验需求 1.按照图示配置IP地址 2.在R1和R3上配置默认路由使公网区域互通 3.在R1和R3上配置GRE VPN&#xff0c;使两端私网能够互相访问&#xff0c;Tunne1口IP地址如图 4.在R1和R3上配置RIPv2来传递两端私网路由 实验步骤 GRE VPN配置方法&#xff1a; 发送端&#x…