最短路径问题

class Solution {

public:

int uniquePaths(int m, int n) {

vector<vector<int>> ret(m+1,vector<int>(n+1,0));

ret[0][1]=1;

for(int i=1;i<=m;i++){

for(int j=1;j<=n;j++){

ret[i][j]=ret[i-1][j]+ret[i][j-1];

}

}

return ret[m][n];

}

};

class Solution {

public:

int uniquePathsWithObstacles(vector<vector<int>>& obs) {

int m=obs.size(),n=obs[0].size();

vector<vector<int>> ret(m+1,vector<int>(n+1,0));

ret[0][1]=1;

for(int i=1;i<=m;i++){

for(int j=1;j<=n;j++){

if(obs[i-1][j-1]==0)

ret[i][j]=ret[i-1][j]+ret[i][j-1];

}

}

return ret[m][n];

}

};

class Solution {

public:

int jewelleryValue(vector<vector<int>>& f) {

int m=f.size(),n=f[0].size();

vector<vector<int>> ret(m+1,vector<int>(n+1,0));

for(int i=1;i<=m;i++){

for(int j=1;j<=n;j++){

ret[i][j]=f[i-1][j-1]+max(ret[i-1][j],ret[i][j-1]);

}

}

return ret[m][n];

}

};

class Solution {

public:

int minFallingPathSum(vector<vector<int>>& mat) {

int n=mat.size();

vector<vector<int>> ret(n+1,vector<int>(n+2,INT_MAX));

for(int i=0;i<n+2;i++) ret[0][i]=0;

for(int i=1;i<=n;i++){

for(int j=1;j<=n;j++){

ret[i][j] = min(ret[i - 1][j - 1], min(ret[i - 1][j], ret[i - 1][j

  • 1])) + mat[i - 1][j - 1];

}

}

int a=INT_MAX;

for(int j=1;j<=n;j++) a=min(ret[n][j],a);

return a;

}

};

class Solution {

public:

int minPathSum(vector<vector<int>>& grid) {

int m=grid.size(),n=grid[0].size();

vector<vector<int>> ret(m+1,vector<int>(n+1,INT_MAX));

//for(int i=0;i<=m;i++) ret[0][i]=0;

//for(int j=0;j<=n;j++) ret[j][0]=0;

ret[0][1]=0;ret[1][0]=0;

for(int i=1;i<=m;i++){

for(int j=1;j<=n;j++){

ret[i][j]=grid[i-1][j-1]+min(ret[i-1][j],ret[i][j-1]);

}

}

return ret[m][n];

}

};

lass Solution {

public:

int calculateMinimumHP(vector<vector<int>>& dung) {

int m=dung.size(),n=dung[0].size();

vector<vector<int>> ret(m+1,vector<int>(n+1,INT_MAX));

ret[m][n-1]=1,ret[m-1][n]=1;

for(int i=m-1;i>=0;i--){

for(int j=n-1;j>=0;j--){

ret[i][j]=min(ret[i+1][j],ret[i][j+1])-dung[i][j];

ret[i][j]=max(1,ret[i][j]);

}

}

return ret[0][0];

}

};

相关推荐
二哈赛车手20 小时前
新人笔记---ApiFox的一些常见使用出错
java·笔记·spring
吃好睡好便好21 小时前
在Matlab中绘制横直方图
开发语言·学习·算法·matlab
栗子~~21 小时前
JAVA - 二层缓存设计(本地缓冲+redis缓冲+广播所有本地缓冲失效) demo
java·redis·缓存
YDS82921 小时前
DeepSeek RAG&MCP + Agent智能体项目 —— RAG知识库的搭建和接口实现
java·ai·springboot·agent·rag·deepseek
仰泳之鹅21 小时前
【C语言】自定义数据类型2——联合体与枚举
c语言·开发语言·算法
未若君雅裁1 天前
MyBatis 一级缓存、二级缓存与清理机制
java·缓存·mybatis
AI人工智能+电脑小能手1 天前
【大白话说Java面试题 第65题】【JVM篇】第25题:谈谈对 OOM 的认识
java·开发语言·jvm
阿维的博客日记1 天前
Nacos 为什么能让配置动态生效?(涉及 @RefreshScope 注解)
java·spring
雨辰AI1 天前
SpringBoot3 + 人大金仓读写分离 + 分库分表 + 集群高可用 全栈实战
java·数据库·mysql·政务
x_yeyue1 天前
三角形数
笔记·算法·数论·组合数学