问题描述
我对C ++ 2D数组有疑问。在下面的代码中,C ++中的grid.size()
和grid[0].size()
有什么区别?
public:
int minPathSum(vector<vector<int>>& grid) {
for(int i = 0; i < grid.size(); i++)
for(int j = 0; j < grid[0].size(); j++) {
if(i == 0 && j == 0) continue;
int tp = 1e9;
if(i > 0) tp = min(tp,grid[i-1][j]);
if(j > 0) tp = min(tp,grid[i][j-1]);
grid[i][j] += tp;
}
return grid[grid.size()-1][grid[0].size()-1];
};
解决方法
grid[0]
返回此二维vector
的第一行,因此grid[0].size()
返回该矩阵第一行的大小,grid.size()
返回该矩阵中的行数。
grid.size()
是外部向量的大小。
grid[0].size()
是外部向量的第一个内部向量的大小。
grid.size()
是网格的行数(外部矢量大小)。
grid[i].size()
是网格第i行的元素数(内部矢量大小)。