快手一面凉经,两道代码题
没问简历,问了算法题,两道,没做出来,凉凉。
第一道
最大值和最小值的差小于或者等于num的子数组数量
答案:https://blog.csdn.net/lilydedbb/article/details/53876216
当时很累,也没见过这种题型= =自己写了个暴力的。面试官问能O(n)吗,想了想说想不出来,面试官说那换一道题
第二道
小和问题
在一个数组中,每一个数左边比当前数小的数累加起来,叫做这个数组的小和。求一个数组的小和。
例子:
[1,3,4,2,5]
1左边比1小的数,没有;
3左边比3小的数,1;
4左边比4小的数,1、3;
2左边比2小的数,1;
5左边比5小的数,1、3、4、2;
所以小和为1+1+3+1+1+3+4+2=16
要求时间O(nlogn),空间O(n)
然后我用的二分去求和,只过了50%,说超时了,然后实际上应该用归并,= =虽然我知道用归并可能也写不出来,当时脑子不清醒,累的不行
最后我问了问面试官一些选择工作时候需要注意的问题,以及内容审核算法岗的前景。面试面的搜索算法岗,不是很匹配,凉了也是应该,而且太久没刷题了= =
第一次写面经,就感觉这两道题比较经典,但是刷leetcode没遇到过,所以,分享一下。