LEETCODE 498. 对角线遍历

Posted hunter01

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了LEETCODE 498. 对角线遍历相关的知识,希望对你有一定的参考价值。

https://leetcode-cn.com/problems/diagonal-traverse/

vector<int> nums;
int m = matrix.size();
int n = matrix[0].size();

int i = 0;  
while (i < m + n)
{   
    int x1 = (i < m) ? i : m - 1;   
    int y1 = i - x1;
    while (x1 >= 0 && y1 < n)
    {
        nums.push_back(matrix[x1][y1]);
        x1--;
        y1++;
    }
    i++;

    if (i >= m + n) break;
    int y2 = (i < n) ? i : n - 1;   
    int x2 = i - y2;
    while (y2 >= 0 && x2 < m)
    {
        nums.push_back(matrix[x2][y2]);
        x2++;
        y2--;
    }
    i++;
}
return nums;

以上是关于LEETCODE 498. 对角线遍历的主要内容,如果未能解决你的问题,请参考以下文章

LEETCODE 498. 对角线遍历

498. 对角线遍历(LeetCode 华为专题)

498#对角线遍历

Leetcode 498. Diagonal Traverse

LeetCode - 操作次数不重复数字对角线遍历约瑟夫环

LeetCode4.Array and String — Diagonal Traverse 对角线遍历