我在Leetcode上刷题时,经常会因为一些不注意的小问题而困恼,现将其记录下来.
1. 二维数组:
- 来源: 我通过刷"329. 矩阵中的最长递增路径"出现的错误.
- 问题: 当我们用vector定义一个二维数组,在对这个二维数组进行操作前,我之前一般都是先将其行数和列数赋值给某个变量,然后判断行数和列数是否等于0之后才进行下一步操作.如:
vector<vector<int> > vec
int row = vec.size()
int column = vec[0].size()
if(row == 0 || column == 0){
return 0;
}
- 原因: 这样写是错误的,因为当vec={ }(为空)时,vec[0]是无法进行size操作的,也就会造成语句
int column = vec[0].size()
报错. - 解决办法:对于二维数组正确的操作应该是:先判断行数和列数是否等于0,再将其行数和列数赋值给某个变量,也即:
vector<vector<int> > vec
if(vec.size() == 0 || vec[0].size() == 0){
return 0;
}
int row = vec.size()
int column = vec[0].size()