题库 C++/C语言题库 题目列表 给定一个m×n的二维网格grid,每个格子中有一个非负整...
单选题

给定一个m×n的二维网格grid,每个格子中有一个非负整数。请找出一条从左上角 (0, 0) 到右下角 (m-1, n-1) 的路径,使得路径上的数字总和最小。每次只能向右或向下移动。横线处应该填入的是()

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];
题目信息
2025年 七级 选择题
-
正确率
0
评论
34
点击