力扣 64.最小路径和

1.题目描述

 

2.思路讲解

1.典型的dp问题,dp问题从来不能说简单,只能看自己当时有没有想到。

2.图解:

 

3.代码实现

int min(int a,int b);
int minPathSum(int** grid, int gridSize, int* gridColSize){
        int rows=gridSize;
        int columns=gridColSize[0];//取行,才知道力扣是这样判断行的
        for(int i=1;i<columns;i++)//外围的一圈
        {
            grid[0][i]=grid[0][i-1]+grid[0][i];
        }
        for(int i=1;i<rows;i++)
        {
            grid[i][0]=grid[i-1][0]+grid[i][0];
        }
        for(int i=1;i<rows;i++)
        {
            for(int j=1;j<columns;j++)
            {
                grid[i][j]=min(grid[i-1][j],grid[i][j-1])+grid[i][j];//去加减
            }
        }
        return grid[rows-1][columns-1];

}
int min(int a,int b)//判断谁大谁小,要小的
{
    if(a>b)
    {
        return b;
    }
    else
    {
        return a;
    }
}

4.总结

题目难度还行,并不算多难,有个思路很快就能ac了

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
THE END
分享
二维码
< <上一篇
下一篇>>