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

【代码随想录算法训练营——Day33】动态规划——62.不同路径、63.不同路径II、343.整数拆分、96.不同的二叉搜索树

LeetCode题目链接
https://leetcode.cn/problems/unique-paths/description/
https://leetcode.cn/problems/unique-paths-ii/submissions/669205256/
https://leetcode.cn/problems/integer-break/description/
https://leetcode.cn/problems/unique-binary-search-trees/description/

题解
62.不同路径
写对了。

63.不同路径II
多了一个障碍物,有一个思路是遍历时每次判断当前位置的上方和左方是否的grid是否为1,如果为1就只加上另一边的值,而如果是边边的值,则为0。经过各种和测试用力的修补,终于通过了。
题解的代码高度凝练了思想。

343.整数拆分
下周目看。

96.不同的二叉搜索树
下周目看。

代码

//62.不同路径
#include <iostream>
#include <vector>
using namespace std;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 i = 0;i < n;i++) {dp[0][i] = 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];}
};int main() {int m1 = 3, n1 = 7, m2 = 3, n2 = 2;Solution s;printf("%d", s.uniquePaths(m1, n1));return 0;
}
//63.不同路径II
#include <iostream>
#include <vector>
using namespace std;class Solution {
public:int uniquePathsWithObstacles(vector<vector<int>>& obstacleGrid) {vector<vector<int>> dp(obstacleGrid.size(), vector<int>(obstacleGrid[0].size(), 0));if (obstacleGrid[0][0] == 1) dp[0][0] = 0;else dp[0][0] = 1;for (int i = 1;i < dp[0].size();i++) {if (obstacleGrid[0][i] == 1) dp[0][i] = 0;else dp[0][i] = dp[0][i - 1];}for (int i = 1;i < dp.size();i++) {if (obstacleGrid[i][0] == 1) dp[i][0] = 0;else dp[i][0] = dp[i - 1][0];}for (int i = 1;i < dp.size();i++) {for (int j = 1;j < dp[i].size();j++) {if (obstacleGrid[i][j] == 1) {dp[i][j] = 0;}else {if (obstacleGrid[i - 1][j] == 1) {dp[i][j] = dp[i][j - 1];}else if (obstacleGrid[i][j - 1] == 1) {dp[i][j] = dp[i - 1][j];}else {dp[i][j] = dp[i - 1][j] + dp[i][j - 1];}}}}for (int i = 0;i < dp.size();i++) {for (int j = 0;j < dp[i].size();j++) {if (obstacleGrid[i][j] == 1) dp[i][j] = 0;}}return dp[dp.size() - 1][dp[0].size() - 1];   }
};int main() {vector<vector<int>> obstacleGrid1 = { {0,0,0},{0,1,0},{0,0,0} }, obstacleGrid2 = { {0,1} ,{0,0} }, obstacleGrid3 = { {0} }, obstacleGrid4 = { {1,0} };vector<vector<int>> obstacleGrid5 = { {0,0,0,0,0} ,{0,0,0,0,1},{0,0,0,1,0},{0,0,1,0,0} }, obstacleGrid6 = { {0,0},{1,1},{0,0} };Solution s;printf("%d", s.uniquePathsWithObstacles(obstacleGrid5));return 0;
}

在这里插入图片描述

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

相关文章:

  • 基于单片机的元胞自动机仿真系统设计
  • 星座运势网站技术解析:从零打造现代化Web应用
  • Asp.net core 跨域配置
  • Java学习之旅第二季-18:转型
  • 建筑物孪生模型:重构空间数字化格局,赋能智慧城市
  • Claude code、codex、gemini cli开启全自动(yolo)模式,无需审批
  • wordpress账号和站内网建网站需要注册公司吗
  • 24软件测试计划主要工作和确定测试资源
  • 【每天一个知识点】[特殊字符] 大数据的定义及单位
  • ICT 数字测试原理 17 - -VCL中的预处理
  • 领码方案|微服务与SOA的世纪对话(7):运营降本增效——智能架构时代的成本与服务管理
  • YOLO v1:目标检测领域的单阶段革命之作
  • 河北建设厅八大员报名网站中国网库网站介绍
  • 基于RuoYi框架+Mysql的汽车进销存后台管理系统
  • 网站底部导航制作制作视频特效
  • 南宁网站建设索王道下拉建设网站的法律声明
  • Java中Mock的写法
  • 在JavaScript / HTML中,调整div的边框
  • 关于margin:auto的注意点
  • 23种设计模式——责任链模式(Chain of Responsibility Pattern)
  • istio 为什么在主机上抓不到15001和15006的流量
  • 怎么建设电子邮箱网站wordpress国外空间
  • 网站内容页怎么设计模板网络建设与维护公司
  • 网页版的点名/抽奖程序
  • 学做课件的网站商丘seo快速排名
  • 海康相机拍照与上传图像识别系统
  • Oracle Database 23ai新特性之INSERT语句增强
  • 使用Xenon工具搭建高可用MySQL集群实战(下)
  • PINN物理信息神经网络风电功率预测!引入物理先验知识嵌入学习的风电功率预测新范式!Matlab实现
  • 【C++进阶系列】:万字详解智能指针(附模拟实现的源码)