2018-04-08

  今天收到蚂蚁金服数据技术部的电面,这次的面试官更注重我对项目整体的理解,很多问题没有回答上来。然后问了三个算法题:1、链表找环;2、将无序数组中的奇数放到前半部分,偶数放到后半部分;3、判断两颗树是否相等。每一个都涉及时间复杂度和空间复杂度的计算及算法的优化。

  第一个题我的思路是将查找过的每一个节点的信息记录下来,每找一个新的的时候都与遍历过的节点做比较,如果有相同的就说明有环。然后通过将信息存储到Map中,可以减少时间复杂度。面试官随后问我非Hash的Map如何实现的,没有回答上来。然后也没有想到那种快慢追赶的算法。第二个题我先说了朴素的算法,新建一个数组然后遍历旧数组。随后提出可以分别从前到后及从后到前遍历数组,将遇到的不满足条件的数据进行交换的改进算法。但是很久不用C,忘记了可以用比较指针判断结束的方法。第三个题本来是想说可以用分治法的。但是感觉自己这几年并没有如此关注过算法,然后直接向面试官表达了出来……果断被终止了面试……

  这是我第一次遇到考算法的面试,题目还好,但是自己水平太次。想了一下,自己毕业3年半,感觉还是半瓶醋状态:算法、数据结构这些基础不够扎实,Java的一些并发啊、JVM调优啊,常用的框架啊,都半生不熟,面试多个公司及部门均无功而返……

  我需要做一些改变,加油!

你可能感兴趣的:(2018-04-08)