礼物的最大价值:最直观的想法是,使用二维数组dp[i][j]表示第i行第j列所能拿的礼物的最大价值,首先初始化第一行和第一列,其是当前行(列)前一个最大价值与当前元素之和,接着从左向右从上向下遍历,其中dp[i][j]=max(dp[i-1][j],dp[i][j-1])+grid[i][j],最后返回dp[m-1][n-1]即可。 int maxValue(vector<vector<int> >& grid) { //m表示长 n表示宽 int m=grid.size(),n=grid[0].size(); //dp[i][j]表示第i行第j列的所能拿的礼物的最大价...