Try   HackMD

2649. Nested Array Generator

tags: leetcode 30 days js challenge Medium

2649. Nested Array Generator

題目描述

Given a multi-dimensional array of integers, return a generator object which yields integers in the same order as inorder traversal.

A multi-dimensional array is a recursive data structure that contains both integers and other multi-dimensional arrays.

inorder traversal iterates over each array from left to right, yielding any integers it encounters or applying inorder traversal to any arrays it encounters.

範例

Example 1:

Input: arr = [[[6]],[1,3],[]]
Output: [6,1,3]
Explanation:
const generator = inorderTraversal(arr);
generator.next().value; // 6
generator.next().value; // 1
generator.next().value; // 3
generator.next().done; // true

Example 2:

Input: arr = []
Output: []
Explanation: There are no integers so the generator doesn't yield anything.

Constraints:

  • 0 <= arr.flat().length <= 105
  • 0 <= arr.flat()[i] <= 105
  • maxNestingDepth <= 105

解答

TypeScript

type MultidimensionalArray = (MultidimensionalArray | number)[]; function* inorderTraversal(arr: MultidimensionalArray): Generator<number, void, unknown> { for (let i = 0; i < arr.length; i++) { if (typeof arr[i] === 'number') { yield arr[i] as number; } else { yield* inorderTraversal(arr[i] as MultidimensionalArray); } } }

SheepSat, June 3, 2023

Reference

回到題目列表