-
二叉树:
二叉树最大深度 / 最小深度 :BFS (用栈)
-
旋转数组:
面试题 10.03. 搜索旋转数组 -
旋转矩阵打印
从左往右,从上往下,从右往左,从下往上 (加判断条件判断是否结束)
-
笔试记录:
腾讯:
第一题:添加最少的括号使其有效(有 ‘(’, ‘)’, ‘[’, ‘]’ 等)
第二题:一个积分,很好搞定。
第三题:现有n个人,要从这n个人中选任意数量的人组成一只队伍,再在这些人中选出一名队长,求不同的方案对10^9+7取模的结果。如果两个方案选取的人的集合不同或选出的队长不同,则认为这两个方案是不同。
f
(
n
)
=
1
∗
C
n
1
+
2
∗
C
n
2
+
3
∗
C
n
3
+
⋯
+
n
∗
C
n
n
f(n) = 1 * C_n^1 + 2 * C_n^2 + 3 * C_n^3 + \cdots + n * C_n^n
f(n)=1∗Cn1+2∗Cn2+3∗Cn3+⋯+n∗Cnn
f
(
n
)
=
∑
i
=
1
n
i
∗
C
n
i
f(n) = \sum^n_{i=1} {i * C_n^i}
f(n)=∑i=1ni∗Cni
f
(
n
)
=
∑
i
=
1
n
(
n
−
i
)
∗
C
n
(
n
−
i
)
=
∑
i
=
1
n
(
n
−
i
)
∗
C
n
i
f(n) = \sum^n_{i=1} {(n-i) * C_n^{(n-i)}} = \sum^n_{i=1} {(n-i) * C_n^{i}}
f(n)=∑i=1n(n−i)∗Cn(n−i)=∑i=1n(n−i)∗Cni
2
f
(
n
)
=
∑
i
=
1
n
i
∗
C
n
i
+
∑
i
=
1
n
(
n
−
i
)
∗
C
n
i
=
∑
i
=
1
n
n
∗
C
n
i
=
n
∗
2
n
2 f(n) = \sum^n_{i=1} {i * C_n^i} + \sum^n_{i=1} {(n-i) * C_n^{i}} = \sum^n_{i=1} {n * C_n^{i}}=n * 2^n
2f(n)=∑i=1ni∗Cni+∑i=1n(n−i)∗Cni=∑i=1nn∗Cni=n∗2n
f
(
n
)
=
n
∗
2
n
−
1
f(n) = n * 2 ^ {n-1}
f(n)=n∗2n−1
第四题:n 个点,有些点之间有路径,有些点之间有传送门,路径双向消耗1精力,传送门单向不消耗精力,从第1个点到第n点,返回最小路径,没有返回-1.
第五题:g(x)表示x附近的点,g(x)=g(y)创造一个价值,求图的总价值。