Hulu日常实习面经 (SDE/RSDE)
一面
时间:2019年4月17日 地点:校内电话面试 形式:电话里交流问题,网页上写代码 时长:1 hour
先简单问了简历上的项目,面试官是做JavaEE的,简历上写的大多是CV的项目,所以面试官问的不多,就问了7分钟。然后就是写代码:链表的归并排序,要求时间复杂度O(nlogn),空间复杂度O(1). (这是一道LeetCode Medium的题,题目链接:148. Sort List) 先说思路,面试官觉得思路ok开始写代码,是在一个叫nova的共享页面上写的,能看到共享者的光标,面试官的光标会follow你的代码。我用的Java写的,核心代码是mergeSort和merge两个方法,其他是自己写的测试代码:
package firstInterview;
class ListNode {
int val;
ListNode next;
public ListNode(int val)
{
this.val = val;
}
}
public class Solution {
public static ListNode mergeSort(ListNode head)
{
if (head == null || head.next == null)
{
return head;
}
ListNode fast = head.next, slow = head;
// Compute mid node of list using fast & slow pointer
// Every time slow pointer goes 1 step while fast pointer goes 2 steps
// Mid n