Houzz过经

Houzz是在Palo Alto的startup,体量大概200人吧,做室内家装C2C的,还有卖家具。整个过程挺愉快且顺利的,所有人都很礼貌很有亲和力的感觉,HQ还有一个滑梯可以玩lol。他们push的挺快的,基本上feedback都在两三个工作日,中间如果不是独立日假期的话,流程应该还会更短一些。

先说一下Timeline:
Application Submit 5.15
HR Phone 6.6
Algorithm Phone I 6.13
Algorithm Phone II 6.20
Onsite 7.11
Offer 7.17

废话不多说,说一下遇到的六道题:

  1. 三则运算算结果,没有除法,只需要保留整数。

输入是字符串,输出是int。这个用Python写很方便,用stack或者基于split都可以。

  1. 二分图判定,LeetCode785。染色加DFS。

  2. 类似于笛卡尔积。给定多个集合,可能有重复元素,每个集合取一个元素构成新集合,返回所有新集合的集合。我用递归做的,稍微需要处理的就是重复元素,不过直接放在集合里就自动处理了。需要注意的是Python不支持集合的集合,需要把set变成fronzeset才可以hash之后放在集合里。面试官人很好,还可以现场查api~

  3. 用64bit的int表示一个二维01点阵,给定长度高度,长度确定为64的整数倍。输入高度和长度起始,起始是bit为单位不是数字index,保证在同一行,将这个范围内的bit翻转。感觉就是一个简单的转化,然后首尾两个int可能只处理一部分,需要用mask,可以直接用移位。但是Python的int太牛逼了,左移就直接超过64位,最后没太写好。一开始面试官说做返回float的四则运算,我说电面做过了,早知道再做一遍还轻松一些lol。

  4. 类似于LFU。有一堆page每个对应一个like值,实现三个api,第一是给一个page加一个like,第二个是获取一个page的like数,第三个是返回最多like的k个page,k是动态的。做法因人而异,我用另一个比较奇葩的双向dict,不过大致思路就是hashmap和linked list。链表是后来follow up的时候才说出来的,在复杂度分析之后。后面还有一个follow up是数据存不下怎么办,万能MapReduce解决。

  5. 不是算法,一道search方面的设计题,没选过search engine的我哭了出来。先一步步地说倒排列表的建立以及检索流程,是在分布式系统里。还聊了一点数据库,瓶颈分析等等。后面有两个分析。一个是两个entity一个特别大另一个特别小怎么办,因为瓶颈是传输所以可以把小的先放到存大的的那个node上intersect完。另一个是所有node全部传到server上,和node之间相互传输算完再传到server,这两种方法的pros and cons。

感觉言之有理就可以。

后面还有package的电话和team match的电话,申请季第一个offer,真不容易。也不知道会不会接。

发帖攒人品,祝大家都好运~

补充:
今天收到package是base130K,27K的RSU分四年,2017年的估值是11.4每股,10K+10K的sign on,然后5K的relocation。

楼主是18fall入学的吗?这么早 厉害了

一年的项目,下个月都毕业啦

请问楼主第4题是什么意思, 总共是64位数, 长度是64的倍数不是超过了吗?

用很多个64bit的integer来表示0/1矩阵,矩阵的总长度是64的倍数,就是说矩阵的总长度和64bit的integer是对齐的

噢噢好的谢谢,麻烦再问下输入和输出是什么?

因为有一个实际应用的情境,所以输入很多,记得有总的width,总的height,行数,start,end,没有输出,in place做翻转

可以请问下楼主HR面主要面了些什么吗?感激不尽!!

Hr那个都不算面试吧,就是随便聊聊,跟你介绍一下公司,可能会顺便问一下你用过的编程语言和工具之类的