依图科技面试
依图科技是我第一个走完所有流程的公司,虽然不知道offer最终会发下来与否。但是终于有公司让我走完了流程,对我有一点肯定。感谢依图科技! 最近几天有空。记录一下自己觉得有趣的吧。 一面时电话面试,上来就是自我介绍。 比较队列和栈 用两个栈实现队列的入队出队操作 给定一个数组,里面有若干个1和若干个2,现在需要将所有的1放到数组左边,所有的2放到数组右边,时间复杂度O(n),空间复杂度O(1)。请实现这个排序算法。 这个问题我用到了快排 说到快排 我之前用的是一个错误的快排。我知道它的思想但是实现的方式增加了空间复杂度而且不停地重新分配数组。这是对性能很大的损耗。也就是网上抨击阮一峰老师的那个快排了,说起阮一峰老师,说真的很感谢他。看了一些他的博客收获很大,虽然他这个快排有错误。但是我觉得思想是在那里正确的,指出错误就行,非得抨击? 二面中又问到了快排 function quickSort (arr) { if (arr.length === 1 ) { return arr; } let change = function (arr, i, j) { let temp = arr[i]; arr[i] = arr[j]; arr[j] = temp; } let partition = function (arr, left, right) { let temp = arr