最短路径问题

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];

}

};

相关推荐
一只数据集3 分钟前
柏林道路路面图像数据集-971张沥青与鹅卵石路面图片-训练测试集划分-支持道路材质识别与自动驾驶视觉算法训练
算法·自动驾驶·材质
我不是懒洋洋4 分钟前
【数据结构】二叉树OJ(单值二叉树、检查两棵树是否相同、对称二叉树、二叉树的前序遍历、另一颗树的子树)
c语言·数据结构·c++·经验分享·算法·leetcode·visual studio
京师20万禁军教头5 分钟前
35面向对象(中级)-编程思想
java
yuzhiboyouye7 分钟前
java redis(缓存)
java·redis·缓存
wljy17 分钟前
每日一题(2026.4.29) 猫猫与数学
c语言·c++·算法·蓝桥杯·stl·牛客
地球资源数据云8 分钟前
2015年中国30米分辨率沼泽湿地空间分布数据集
大数据·数据结构·数据库·人工智能·机器学习
sali-tec10 分钟前
C# 基于OpenCv的视觉工作流-章56-OCR
图像处理·人工智能·opencv·算法·计算机视觉·ocr
MicroTech202515 分钟前
微算法科技(NASDAQ:MLGO)混合经典量子算法:赋能数字图像处理的创新路径
科技·算法·量子计算
大大杰哥15 分钟前
DAG 学习笔记:从拓扑排序到并行执行
java
yu859395816 分钟前
降低OFDM系统PAPR的各种算法及误码率分析
前端·算法