最近在做一些牛客网的编程题和算法题:把一些比较生疏的知识点记下来,自己复习,也供大家参考;
1、给定节点数n后,求二叉树最多的结构
结构数量num = C(2n,n)/n+1;其中n是给定的节点数,比如给定节点数是3;那么用组合C(6,3)/4 = 5;
2、平衡二叉树,在给定树的高度之后,求最少节点个数,递推求解,公式如下
F(n) = F(n-1) + F(n-2) + 1 F(0) = 0; F(1) = 1; F(2) = 2
3、具备时间序列标注能力的算法
convoluntion neural network卷积神经网络;隐马科夫 ;Conditional Random Field 条件随机场
4、稳定排序算法
冒泡、插入、归并、基数
5、非稳定排序算法
选择、快排、堆排、希尔排序
6、三叉树节点计算
3的n-1次方累加,其实就是3的n次方了;
7、降维的算法
A. Latent Dirichlet Allocation把文档投影到了“topic”空间,可以理解为
降维,也就主题模型
B. word2vec 是它在给定的语料库上训练一个模型,输出出现在语料库上中单词的向量(word embedding)表示,NLP中传统的词表示方法是把每个单词表示成dim(词汇量大小)维的稀疏向量,这个稀疏向量只有一个维度(该单词的index)上是1,其余全是0,单词之间孤立,word embedding则是把单词的表示
降维到n维的稠密向量,n<<dim。
C. PCA不用说,有降维的作用
D. 自编码也很好理解,隐藏层的神经元数目少于输入就可以看做降维和压缩
8、生成模型和判别模型距离
生成式模型
- 判别式分析
- 朴素贝叶斯
- K近邻(KNN)
- 混合高斯模型
- 隐马尔科夫模型(HMM)
- 贝叶斯网络
- Sigmoid Belief Networks
- 马尔科夫随机场(Markov Random Fields)
- 深度信念网络(DBN)
判别式模型
- 线性回归(Linear Regression)
- 逻辑斯蒂回归(Logistic Regression)
- 神经网络(NN)
- 支持向量机(SVM)
- 高斯过程(Gaussian Process)
- 条件随机场(CRF)
- CART(Classification and Regression Tree)