深信服-笔试-2023年9月12日
20道左右的填空题,4道编程题。题量还是挺大的,填空题很多计算题,不过编程题不算很难。
- 逻辑性相容什么意思。
- 计算题
- 建堆
- 拓扑排序
- 哈夫曼编码数
- 编程题4题。
- 条件概率。由[a-z]26个字母组成的字符串中,计算使用组成这个字符串的字母组合的个数,可以使用1个乃至所有出现的字母,组合不考虑顺序。直接从C(n,1)加到C(n,n)就行。
- 给定一个数组,找出该数组中不包含重复元素的最长子数组的长度。直接遍历,用一个哈希表储存当前子数组元素即可。
- 背包问题。在数组里面挑选若干木材,然后根据木材长度乘以任意数量,组合结果最后是length长度,且使用的木材数量最少。输入太阴间了,mmp
- 输入三个数,每行一个。k、m、n。 代表有m*n的矩阵,从(0,0)出发,走到(m,n)坐标。高中条件组合,稍微推导一下公式:C(m+n,m)。问题是直接阶乘是不行的,输入范围是30+30,直接阶乘再除,会爆的。所以需要将分子分母的阶乘因子先约简,把分母全约掉,这就可以了。