第21241题 单选题
给定求解m×n二维网格最小路径和的C++代码,补全其中的空白处,选出正确的代码行

给定一个m×n的二维网格grid,每个格子中有一个非负整数。请找出一条从左上角(0, 0)到右下角(m-1, n-1)的路径,使得路径上的数字总和最小,每次只能向右或向下移动。补全以下C++代码中的空白处:

1 #include <iostream>
2 #include <vector>
3 #include <algorithm>
4 using namespace std;
5
6 int minPathSum(vector<vector<int>>& grid) {
7  int m = grid.size();
8  int n = grid[0].size();
9
10  vector<vector<int>> dp(m, vector<int>(n, 0));
11
12  dp[0][0] = grid[0][0];
13  for (int j = 1; j < n; j++) {
14   dp[0][j] = dp[0][j - 1] + grid[0][j];
15  }
16  for (int i = 1; i < m; i++) {
17   dp[i][0] = dp[i - 1][0] + grid[i][0];
18  }
19  for (int i = 1; i < m; i++) {
20   for (int j = 1; j < n; j++) {
21    ————————————————————————————————
22   }
23  }
24  return dp[m - 1][n - 1];
25 }
26
27 int main() {
28  int m, n;
29  cin >> m >> n;
30  vector<vector<int>> grid(m, vector<int>(n));
31  for (int i = 0; i < m; i++) {
32   for (int j = 0; j < n; j++) {
33    cin >> grid[i][j];
34   }
35  }
36  int result = minPathSum(grid);
37  cout << result << endl;
38
39  return 0;
40 }
A

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

B

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

C

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

D

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

程序运行统计
暂无判题统计