square onsite

原帖地址:一亩三分地

上周五面的,挂了,发出来攒人品吧。

电面:
1. 给一个数组,找出一个长度最长的子数组,里面的值是连续的。
Follow up:
连续的值可以跳着的,不一定index也是连续,返回这种子序列的最大长度。

2. LRU cache.

Onsite:
squre的office逼格的确挺高,中午吃的也挺好,面试是pair programming,但每个面试者不是单独一个房间,而是十几对面试者跟面试官同事在一个地方,有点吵。

1. 不停地增加squares,表示成 (float x, float size) , 只要有重叠,新的方块会积在旧方块上, 最后实现 getHight(float x), 这题目是面经里电面题,就没准备。看着简单,写起来巨烦,最后跑是跑出来了,但是感觉还是有bug, 目测跪在了这一题。

2.
a. 一堆 pancakes, 根据大小排序,但是要先 implement swap(List pancakes, int end),把从 index 0 ~ end 的pancakes的顺序全部倒过来,然后用这个方法正常排序pancakes, 最后size 从小到大。

比如 {3, 2, 5, 4, 6}swap(pancakes, 3) 之后是 {4, 5, 2, 3, 6} implement 一个方法 不停地 swap 得到 {2, 3, 4, 5, 6}, 数字表示对应 pancake size

b. 也是一堆 pancakes, 现在有两面,有的是正面朝下,有的是反面朝下,也是implement swap(List pancakes, int end), 把从 index 0 ~ end 的pancakes的顺序全部倒过来,同时对应的面也要反过来, 最后要得到的结果是全部正面朝上。

比如 T 表示正面朝上,F 表示反面朝上。

{T, F, F, F, T},swap(pancakes, 3) 之后 是 {T, T, T, F, T}, 最后用swap 方法,最终得到{T, T, T, T, T}