1、时间:2019年8月13日
2、面试流程:
面试比较简短,一面没有自我介绍,没有问项目,直接写个代码。
题目:存在一个递增正整数数组,其中a[i]>2*a[i-1],问是否存在两个元素之和为给定值。
如果没有数组相邻元素的限制条件直接双指针start、end直接遍历,时间复杂度O(N),面试官让继续优化。
面试官提示的点:
1)数组中如果存在这样的两个元素,是否是唯一的,根据上面的递推公式,可以知道是唯一的。
2)后面的元素值的范围肯定是(target/2,target),可以使用二分查找大值,然后二分查找小值是否存在。
思路:
经过面试官提醒,思路就很明确了,先使用二分查找定位大值的,然后再使用二分查找看小值是否存在。
总结:对于优化类的算法题,很多时候由于没有见过,导致思路受限,面试效果不好,要多多思考。