600字范文,内容丰富有趣,生活中的好帮手!
600字范文 > 力扣报错:runtime error: reference binding to null pointer of type ‘std::vector<int

力扣报错:runtime error: reference binding to null pointer of type ‘std::vector<int

时间:2020-06-30 05:21:37

相关推荐

力扣报错:runtime error: reference binding to null pointer of type ‘std::vector<int

出错原因:

有for循环或者while时,没有考虑数组为空的情况,且将判断数组为空条件写在比较靠下的位置了,比如下面时错误的:

参考文章:

/qq_36421001/article/details/113749195

错误

class Solution {public:vector<int>result;vector<int> spiralOrder(vector<vector<int>>& matrix) {result.clear();int m=matrix.size();int n=matrix[0].size();if(matrix.empty())return {};int count=0;//执行出错时 是空矩阵情况,所以还要考虑一下 while(m>count*2 &&n>count*2){print(matrix,m,n,count);count++;}return result;}void print(vector<vector<int>>& matrix,int row,int col,int count){//从左到右打印一行for(int i=count,j=count;j<col-count;j++){result.push_back(matrix[count][j]);}//从上到下if(count<row-count-1){for(int i=count+1;i<row-count;i++){result.push_back(matrix[i][col-count-1]);}}//从右到左if(count<col-count-1 && count<row-count-1){for(int i=col-count-2;i>=count;i--){result.push_back(matrix[row-count-1][i]);}}//从下到上if(count<col-count-1 && count<row-count-2){for(int i=row-count-2;i>=count+1;i--){result.push_back(matrix[i][count]);;}}}};

改成

class Solution {public:vector<int>result;vector<int> spiralOrder(vector<vector<int>>& matrix) {result.clear();if(matrix.empty())return {};int m=matrix.size();int n=matrix[0].size();int count=0;//执行出错时 是空矩阵情况,所以还要考虑一下 while(m>count*2 &&n>count*2){print(matrix,m,n,count);count++;}return result;}void print(vector<vector<int>>& matrix,int row,int col,int count){//从左到右打印一行for(int i=count,j=count;j<col-count;j++){result.push_back(matrix[count][j]);}//从上到下if(count<row-count-1){for(int i=count+1;i<row-count;i++){result.push_back(matrix[i][col-count-1]);}}//从右到左if(count<col-count-1 && count<row-count-1){for(int i=col-count-2;i>=count;i--){result.push_back(matrix[row-count-1][i]);}}//从下到上if(count<col-count-1 && count<row-count-2){for(int i=row-count-2;i>=count+1;i--){result.push_back(matrix[i][count]);;}}}};

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。