LeetCode: 对角线遍历
对角线遍历
要求
给定一个含有 M x N 个元素的矩阵(M 行,N 列),请以对角线遍历的顺序返回这个矩阵中的所有元素。
思路
判断奇数和偶数行,进行M和N得大小加减。
示例
class Solution {
public:
vector<int> findDiagonalOrder(vector<vector<int>>& matrix) {
vector<int> out;
if(matrix.empty()){
return out;
}
int i=0,j=0,sum=matrix[0].size()*matrix.size();
for(int count=0;count<sum;count++){
out.push_back(matrix[i][j]);
if((i+j)%2==0){//偶数行
if(j==matrix[0].size()-1){
i++;
}else if(i==0){
j++;
}else{
i--;
j++;
}
}
else{//奇数行
if(i==matrix.size()-1){
j++;
}else if(j==0){
i++;
}else{
i++;
j--;
}
}
}
return out;
}
};
持之以恒的学习,方是进步的唯一途径!