【算法日志】动态规划刷题:路径数问题(day34)

代码随想录刷题60Day


目录

前言

不同路径

不同路径(2)


前言

今天的动态规划题与昨天的题很类似,只不过今天的题是在二维上讨论,难度上略有提升。


不同路径

cpp 复制代码
int uniquePaths(int m, int n) 
	{
		vector<int> dp(n + 1, 1);
		for (int i = 1; i < m; ++i)
		{
			for (int j = 2; j <= n; ++j)
				dp[j] = dp[j] + dp[j - 1];
		}
		return dp[n];
	}

不同路径(2)

有一些测试用例比较极端,需要注意一些细节。

cpp 复制代码
	int uniquePathsWithObstacles(vector<vector<int>>& obstacleGrid) 
	{
		if (obstacleGrid[0][0])return 0;
		int size = obstacleGrid[0].size();
		vector<int> dp(size + 1, 0);
		dp[1] = 1;
		for (int i = 0; i < obstacleGrid.size(); ++i)
		{
			if (obstacleGrid[i][0])
				dp[1] = 0;
			for (int j = 2; j <= size; ++j)
			{		
				if (obstacleGrid[i][j - 1])
					dp[j] = 0;
				else if (i > 0)
					dp[j] = dp[j] + dp[j - 1];
				else
					dp[j] = dp[j - 1];
			}
		}
		return dp[size];
	}

相关推荐
前端小白在前进21 分钟前
力扣刷题:在排序数组中查找元素的第一个和最后一个位置
数据结构·算法·leetcode
某林2122 小时前
基于SLAM Toolbox的移动机器人激光建图算法原理与工程实现
stm32·嵌入式硬件·算法·slam
修炼地2 小时前
代码随想录算法训练营第四十三天 | 图论理论基础、深搜理论基础、卡码网98. 所有可达路径、797. 所有可能的路径、广搜理论基础
算法·深度优先·图论
iAkuya2 小时前
(leetcode)力扣100 23反转链表(迭代||递归)
算法·leetcode·链表
剪一朵云爱着2 小时前
PAT 1095 Cars on Campus
算法·pat考试
MicroTech20253 小时前
激光点云快速配准算法创新突破,MLGO微算法科技发布革命性点云配准算法技术
人工智能·科技·算法
Cathy Bryant3 小时前
傅里叶变换(一):简介
笔记·算法·数学建模·信息与通信·傅里叶分析
allan bull4 小时前
在节日中寻找平衡:圣诞的欢乐与传统节日的温情
人工智能·学习·算法·职场和发展·生活·求职招聘·节日
似水এ᭄往昔4 小时前
【C++】--封装红⿊树实现mymap和myset
开发语言·数据结构·c++·算法·stl
咕噜企业分发小米4 小时前
腾讯云向量数据库HNSW索引如何更新?
人工智能·算法·腾讯云