Diagonal Traverse II
MediumArraySortingHeap (Priority Queue)
Solution
export function findDiagonalOrder(nums: number[][]): number[] {
const answer: number[] = [];
let queue: number[][] = [[0, 0]];
while (0 < queue.length) {
const nextQueue: number[][] = [];
for (const [row, col] of queue) {
answer.push(nums[row][col]);
if (col === 0 && row + 1 < nums.length) {
nextQueue.push([row + 1, col]);
}
if (col + 1 < nums[row].length) {
nextQueue.push([row, col + 1]);
}
}
queue = nextQueue;
}
return answer;
}