⭐️

# 題目敘述

Given an m x n matrix mat , return an array of all the elements of the array in a diagonal order.

# Example 1

Input: mat = [[1,2,3],[4,5,6],[7,8,9]]
Output: [1,2,4,7,5,3,6,8,9]

# Example 2

Input: mat = [[1,2],[3,4]]
Output: [1,2,3,4]

# 解題思路

# Solution

import java.util.ArrayList;
class Solution {
    public int[] findDiagonalOrder(int[][] mat) {
        if (mat == null || mat.length == 0) {
            return new int[0];
        }
        int row = mat.length;
        int col = mat[0].length;
        ArrayList<Integer> ans = new ArrayList<>(row * col);
        for (int i = 0; i <= (row + col - 2); i++) {
            int r = (i < col) ? 0 : i - col + 1;
            int c = (i < col) ? i : col - 1;
            ArrayList<Integer> temp = new ArrayList<>();
            while (r < row && c >= 0) {
                temp.add(mat[r][c]);
                r++;
                c--;
            }
            if ((r + c) % 2 == 0) {
                // move up
                for (int j = temp.size() - 1; j >= 0; j--) {
                    ans.add(temp.get(j));
                }
            } else {
                // move down
                ans.addAll(temp);
            }
        }
        return ans.stream().mapToInt(i -> i).toArray();
    }
}
#include <vector>
#include <algorithm>
class Solution {
public:
    std::vector<int> findDiagonalOrder(std::vector<std::vector<int>>& mat) {
        int row = mat.size();
        int col = mat[0].size();
        std::vector<int> result;
        for(int i = 0; i < row + col - 1; i++) {
            int r = (i < col) ? 0 : i - col + 1;
            int c = (i < col) ? i : col - 1;
            std::vector<int> temp;
            while(r < row && c >= 0) {
                temp.push_back(mat[r][c]);
                r++;
                c--;
            }
            if((r + c) % 2 == 0) {
                std::reverse(temp.begin(), temp.end());
            }
            result.insert(result.end(), temp.begin(), temp.end());
        }
        return result;
    }
};

單字

** **
!! !!

片語 & 搭配詞

!! !!