MA_master01 2022-03-11 22:10 采纳率: 25%
浏览 16

二维数组路径中最大值最小

问题

一个二维数组(样例如下)
6,6(行列)
{0,0,0,0,0,0
1,2,3,4,5,6
2,3,4,5,6,7
3,4,5,6,7,8
1,1,3,6,5,4
0,0,0,0,0,0
}
取一条从左上到右下路径,找出路径元素的最大值,让这个最大值最小。
输出:3(路径:0,1,2,3,1,0,0,0,0,0,0)

我的尝试
#include<bits/stdc++.h>
using namespace std;

int maxest(int a,int b)//取最大值
{
    return a>b?a: b;
}
int minPathSum(vector<vector<int>> &grid)
{
    int row=grid.size(),col=grid[0].size();
    for(int i=1; i<col;++i)
    {
        grid[0][i]=maxest(grid[0][i],grid[0][i - 1]);
    }
    for(int i=1; i<row;++i)
    {
        grid[i][0]=maxest(grid[i][0],grid[i - 1][0]);
    }
    for(int i=1;i<row;++i)
    {
        for(int j=1;j<col;++j)
        {
            grid[i][j]=maxest(min(grid[i - 1][j], grid[i][j - 1]),grid[i][j]);
        }
    }
    return grid[row - 1][col - 1];
}
int input()
{
    int a;
    cin>>a;
    return a;
}
int main()
{
    vector<vector<int>> arr;
    vector<int> a;
    
    int n,m;
    cin>>n>>m;
    int temp=0;
    for (int i=0;i<n;i++)
    {
        a.clear();
        for(int j=0;j<m;j++)
        {
            cin>>temp;
            a.push_back(temp);
        }
        arr.push_back(a);
    }
    int ans=minPathSum(arr);
    cout<<ans<<endl;
    return 0;
}

输入:

4 2
0 0
3 5
2 4
0 0

输出:

3

过程:

0->3->2->0->0

求解

  • 写回答

1条回答 默认 最新

  • 丨封尘绝念斩丨 2022-03-11 22:19
    关注

    动态规划,从左上角开始往下走,每走一步记录一次

    评论

报告相同问题?

问题事件

  • 创建了问题 3月11日

悬赏问题

  • ¥15 io.jsonwebtoken.security.Keys
  • ¥15 急,ubuntu安装后no caching mode page found等
  • ¥15 联想交换机NE2580O/NE1064TO安装SONIC
  • ¥15 防火墙的混合模式配置
  • ¥15 Ubuntu不小心注销了要怎么恢复啊
  • ¥15 win10电脑安装完plcsim advanced4.0运行时为什么会提示找不到虚拟网卡
  • ¥15 安装powerbuilder10卡在安装程序正在运行这个页面 没有下一步任何指令
  • ¥15 关于mpi的问题:请问遇到这种情况需要怎么解决,出现这个问题后电脑不能进行mpi多核运行只能进行单核运行
  • ¥50 微信聊天记录备份到电脑提示成功了,但还是没同步到电脑微信
  • ¥15 python怎么在已有视频文件后添加新帧