Skip to content

Commit 132fc86

Browse files
committed
feat: add solutions to lc problem: No.2625
No.2625.Flatten Deeply Nested Array
1 parent 297dd96 commit 132fc86

File tree

3 files changed

+65
-2
lines changed

3 files changed

+65
-2
lines changed

solution/2600-2699/2625.Flatten Deeply Nested Array/README.md

+27-1
Original file line numberDiff line numberDiff line change
@@ -69,14 +69,40 @@ n = 2
6969

7070
<!-- 这里可写通用的实现逻辑 -->
7171

72+
**方法一:递归**
73+
74+
我们可以使用递归的方法,将多维数组扁平化。
75+
76+
在函数中,我们首先判断 $n$ 是否小于等于 $0$,如果是,直接返回原数组。否则,我们遍历数组的每个元素 $x$,如果 $x$ 是数组,我们递归调用函数,将 $x$ 作为参数,$n - 1$ 作为深度,将返回值添加到结果数组中;否则,将 $x$ 添加到结果数组中。最后返回结果数组。
77+
78+
时间复杂度 $O(n)$,空间复杂度 $O(n)$。其中 $n$ 是数组的元素个数。
79+
7280
<!-- tabs:start -->
7381

7482
### **TypeScript**
7583

7684
<!-- 这里可写当前语言的特殊实现逻辑 -->
7785

7886
```ts
79-
87+
type MultiDimensionalArray = (number | MultiDimensionalArray)[];
88+
89+
var flat = function (
90+
arr: MultiDimensionalArray,
91+
n: number,
92+
): MultiDimensionalArray {
93+
if (n <= 0) {
94+
return arr;
95+
}
96+
const ans: MultiDimensionalArray = [];
97+
for (const x of arr) {
98+
if (Array.isArray(x)) {
99+
ans.push(...flat(x, n - 1));
100+
} else {
101+
ans.push(x);
102+
}
103+
}
104+
return ans;
105+
};
80106
```
81107

82108
### **...**

solution/2600-2699/2625.Flatten Deeply Nested Array/README_EN.md

+19-1
Original file line numberDiff line numberDiff line change
@@ -67,7 +67,25 @@ The maximum depth of any subarray is 1. Thus, all of them are flattened.</pre>
6767
### **TypeScript**
6868

6969
```ts
70-
70+
type MultiDimensionalArray = (number | MultiDimensionalArray)[];
71+
72+
var flat = function (
73+
arr: MultiDimensionalArray,
74+
n: number,
75+
): MultiDimensionalArray {
76+
if (n <= 0) {
77+
return arr;
78+
}
79+
const ans: MultiDimensionalArray = [];
80+
for (const x of arr) {
81+
if (Array.isArray(x)) {
82+
ans.push(...flat(x, n - 1));
83+
} else {
84+
ans.push(x);
85+
}
86+
}
87+
return ans;
88+
};
7189
```
7290

7391
### **...**
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
type MultiDimensionalArray = (number | MultiDimensionalArray)[];
2+
3+
var flat = function (
4+
arr: MultiDimensionalArray,
5+
n: number,
6+
): MultiDimensionalArray {
7+
if (n <= 0) {
8+
return arr;
9+
}
10+
const ans: MultiDimensionalArray = [];
11+
for (const x of arr) {
12+
if (Array.isArray(x)) {
13+
ans.push(...flat(x, n - 1));
14+
} else {
15+
ans.push(x);
16+
}
17+
}
18+
return ans;
19+
};

0 commit comments

Comments
 (0)