零神带我们过模拟面试

零神模拟面试总结

文章目录

  • 零神模拟面试总结
    • 简介
    • 题目和题解
      • 概率类
        • 投硬币(概率/几何级数)
        • 取球(条件概率)
        • 作业与吃糖(概率/数列知识)
      • 数学类
        • 导数
      • 算法相关
        • 逆序对算法选择
        • 空间复杂度相关
        • 时间复杂度

简介

最近甜姐群里大家都在面试,总结一些题目。包括群里讨论的面试题,以及零神下班前出的题目,

题目和题解

概率类

投硬币(概率/几何级数)

甲乙两人轮流投硬币,先投出正面的赢。如果甲先投硬币,那么甲获胜的概率是多少。

分析,可以按照轮来计算:

  1. 第一轮,甲正面 1 / 2 1/2 1/2,乙正面 1 / 2 ⋅ 1 / 2 = 1 / 4 1/2\cdot1/2=1/4 1/21/2=1/4,轮空 1 / 4 1/4 1/4
  2. 第二轮,首先需要轮空才能进入第二轮,甲正面 1 / 4 ⋅ 1 / 2 1/4\cdot 1/2 1/41/2, 乙正面 1 / 4 ⋅ 1 / 2 ⋅ 1 / 2 1/4\cdot1/2\cdot1/2 1/41/21/2,轮空 1 / 4 ⋅ 1 / 4 1/4\cdot1/4 1/41/4

那么甲获胜的概率为:
1 2 + 1 4 ⋅ 1 2 + 1 4 2 ⋅ 1 2 + ⋯ + 1 4 n − 1 ⋅ 1 2 \frac{1}{2} +\frac{1}{4}\cdot\frac{1}{2}+\frac{1}{4}^2\cdot\frac{1}{2} + \cdots+\frac{1}{4}^{n-1}\cdot\frac{1}{2} 21+4121+41221++41n121
等比数列求和
S n = a 0 ( 1 − q n ) 1 − q = lim ⁡ n → ∞ 1 / 2 ⋅ ( 1 − ( 1 / 4 ) n ) 1 − 1 / 4 = 2 3 S_n=\frac{a_0(1 - q^n)}{1- q} =\lim_{n\to\infin} \frac{1/2\cdot(1- (1/4)^n)}{1-1/4}=\frac{2}{3} Sn=1qa0(1qn)=nlim11/41/2(1(1/4)n)=32

取球(条件概率)

有三个箱子,第一个箱子里面两个红球,其二个里面两个黄球,第三个里面一红一黄。现在甜姐随机选择一个箱子,并且在箱子中随机摸出了一个球,发现这个球是红球。那么问这个箱子中另外一个球也是红球的概率是多少。

一个比较直观的思路是,当摸出红球的时候,有 1 / 3 1/3 1/3的概率是从一红一黄的箱子里面摸出来的,有 2 / 3 2/3 2/3的概率是从两个红球的箱子里面摸出来的,那么箱子中另外一个球也是红球的概率就是 2 / 3 2/3 2/3

定义

A: 取出两个球是红球
B: 取出的第一个球是红球

P ( A ∣ B ) = P ( A B ) P ( B ) = 1 / 3 3 / 6 = 2 3 P(A|B) = \frac{P(AB)}{P(B)}=\frac{1/3}{3/6} = \frac{2}{3} P(AB)=P(B)P(AB)=3/61/3=32

作业与吃糖(概率/数列知识)

盒子里面有一个红球一个黄球,每次我从盒子里面拿出一个球在放回去,如果是红球,那么吃一颗糖,然后继续玩下去,如果是黄球,那么去写作业,问期望能吃几颗糖

可以知道吃几颗糖时对应的概率。

  1. 吃1颗糖,红黄, 1 / 2 ⋅ 1 / 2 1/2\cdot1/2 1/21/2
  2. 吃2颗糖,红黄黄, 1 / 2 ⋅ 1 / 2 ⋅ 1 / 2 1/2\cdot1/2\cdot1/2 1/21/21/2

那么对应期望公式为:
E ( n ) = ∑ i = 1 ∞ i ⋅ 1 2 i + 1 E(n) = \sum_{i=1}^{\infin}i\cdot\frac{1}{2^{i + 1}} E(n)=i=1i2i+11
这个期望求解用乘2相减的方法:
E ( n ) = 1 ⋅ 1 2 2 + 2 ⋅ 1 2 3 + ⋯ + n ⋅ 1 2 n − 1 E(n)=1\cdot\frac{1}{2^2} + 2\cdot\frac{1}{2^3}+\cdots+n\cdot\frac{1}{2^n-1} E(n)=1221+2231++n2n11

2 E ( n ) = 1 ⋅ 1 2 + 2 ⋅ 1 2 2 + ⋯ + n ⋅ 1 2 n + ( n + 1 ) ⋅ 1 2 n + 1 2E(n) = 1\cdot\frac{1}{2}+2\cdot\frac{1}{2^2}+\cdots+n\cdot\frac{1}{2^n} + (n + 1)\cdot\frac{1}{2^{n+1}} 2E(n)=121+2221++n2n1+(n+1)2n+11

2 E ( n ) − E ( n ) = ∑ i = 1 ∞ 1 2 i = 1 2E(n) - E(n) = \sum_{i=1}^{\infin}\frac{1}{2^i}=1 2E(n)E(n)=i=12i1=1

所以期望能吃到 1 1 1颗糖

数学类

导数

x x x^x xx 的导数是什么

转化一下
( x x ) ′ = ( e x ln ⁡ x ) ′ = ( 1 + ln ⁡ x ) e x ln ⁡ x = ( 1 + ln ⁡ x ) ⋅ x x (x^x)'=(e^{x\ln{x}})' = (1+\ln x)e^{x\ln x} = (1 + \ln x) \cdot x^x (xx)=(exlnx)=(1+lnx)exlnx=(1+lnx)xx

算法相关

逆序对算法选择

用归并排序计算逆序对,相较于树状数组而言,有啥优势(开放题 随意回答 写起来简单这种不算)

树状数组需要离散化,归并不用。

空间复杂度相关

归并的空间复杂度: O ( n ) O(n) O(n) 最大需要 n n n的辅助数组

快排的平均空间复杂度: O ( log ⁡ n ) O(\log n) O(logn) 原因是快排需要 log ⁡ N \log N logN 的栈空间

堆排的空间复杂度: O ( 1 ) O(1) O(1)

时间复杂度

插入排序的平均时间复杂度: O ( n 2 ) O(n^2) O(n2)

如果插入排序过程中使用二分查找到插入的位置,插入排序的平均时间复杂度是多少 O ( n 2 ) O(n^2) O(n2) ,只要插入,就需要 O ( n ) O(n) O(n)

你可能感兴趣的:(算法,面试,数据结构)