谷狗加面3.1

3865
25
刚结束的谷狗加面,听声音应该是个本土小姐姐,全程冷冷的不怎么爱说话。

第一题,sentence similarity,判断句子是否同义词,还好之前面经见过LC上也刷过,followup就是可以transitive。

第二题,给了两个function, start(id, start_time), stop(id, time),分别表示给id赋值开始和结束时间,给了一堆这样子的操作(确保start小id的operation先出现,以及每个id最后都有start_time和stop_time),要求按start顺序print对应的id, start_time, stop_time,要求空间复杂度尽可能小,不能一股脑先全部记录再全部print。没见过这题,一开始理解错了以为很简单,后来说了几种思路,对面指出问题,才发现很麻烦。
e.g.,start(1, 1), start(2, 2), stop(2, 3), start(3, 4), stop(3, 5), stop(1,6),print顺序是(1,1,6), (2, 2, 3), (3,4, 5) #(id, start_time, end_time)
start(1,1), stop(1,2), start(2,2), start(3,3), stop(2,4), stop(3, 5),print顺序是(1,1,2), (2, 2, 4), (3, 3, 5)
我最后想的思路是用doubly linked list,当更新的id是linked list中的head,且start和end time都存在,才可以print然后看下一个。感觉大方向应该可行,但代码里需要处理的细节太多最后时间不够了,google doc里的代码肯定很多bug。希望大家畅所欲言看看大家这题怎么想的。

发出来攒个人品求通过,希望小姐姐能高抬贵手。这也是最后一次面试机会了,找工作这段时间经历各种冷暖,耗的时间也太久,这次如果挂了就只能回国了。
  • 2
25条回复