本日还是在刷题,下战书测验。
邻近测验,竟然另有点告急。也是很多年没有测验了。这次加入了HR推荐的华为机考,一共有3题,分别是100/100/200分,总计400分。在牛客网模拟环境中网上测验。
第一题是找车位标题,给定一个0和1构成的数组,1代表车位占用,0代表没有占用。如今要停一辆车进去,这辆车肯定要间隔其他任何的车间隔最大。求这个最大间隔。
比方这样一个车位布局:1,0,0,0,0.1,1,0
将车位停在第三个地方,他与附近车位间隔为2和3,那么近来的车间隔2。
这个标题不难,但是由于我没有留意好界限条件,导致不停有几个用例实验没通过,排查了很久才发现,一道题花了四十多分钟,属实拉胯了。
第二题,给定字符串1,和字符串2。字符串1全部字符的分列组合构成的新串,假如在字符串2里面存在一样的序列(子串),则返回在字符串2中的下标。
这道题一开始我是想求出字符串1全部的分列组合数据,再去字符串2里面找,但是字符串的分列组合的环境着实太多了。算法复杂度肯定会超标的。
厥后我想到动态规划算法,意思是假如字符串2第N个字符,在字符串1中存在,则那么从这个字符开始今后找,假如反面每一个字符都在字符串1中存在且没有被占用。则继承找下一个。假如无法匹配,那么这个N下下标开始的子串不大概是字符串1的某种组合,则找N+1。
直到字符串1中全部的字符都被占用,分析str2中的第N位开头的子串就是字符串1的一个分列组合。
但是这一题运行到90%的用例时报错无法在规定时间内实验完成。由于看不到报错用例,我看半天还是没有看出来哪个界限条件忽视了。惋惜没有完全做出来。
第三题,给定一个二叉树的字符串体现方法,比方a{b,c},就是一个a为顶点,b为左节点,c为右节点,输出这个二叉树的中序遍历效果。实际输入的二叉树层级布局比力复杂,也就是b和c对应的不是一个节点而是子树。
这一题本来是想创建一个二叉树的数据布局,但发现过于复杂。厥后想到可以把输入字符串拆解成简单二叉树,对每个二叉树都按照中序遍历的方式重新输出。而假如子节点是一个树的话,就继承对这个子树拆分,直到拆到叶子结点,然后再输出。
我觉得思绪没有标题,就是没时间继承写下去了,还是很惋惜。
最终,只考了不到200分,太垃圾了。 |