一、

一开始因为没收到含有共享文档链接的邮件,所以简单自我介绍,聊了几句项目。问了:

1. 玩嗨如果数据库结构变化要怎么办

2. 哈佛项目是否为官方渠道

一直没收到邮件,面试官读网址给我,进到共享文档界面。

共享文档编程:

1. 单链表的快速排序

我先求了长度,他说不用求长度。

第一个元素为枢轴,然后把当前链表分成两个链表,一个全部是小于等于枢轴的元素,另一个全部是大于等于枢轴的元素,然后递归快排这两个新链表,最后把它们连起来。

2. 给一个无序数组,元素不重复,连续数字的最大长度。例:[4,5,1,3,8,9]的最长连续数字为[3,4,5],所以最大长度为3。

我先说的排序,然后遍历。时间复杂度O(nlogn)。

面试官说时间复杂度低一些的呢。

提示可以用额外的存储空间来换时间。

最后说出来用哈希表存储每个元素是否出现,然后从每个元素开始找它加1的元素是否存在,若存在则长度加1,若不存在则重新计数。

具体实现:首先遍历链表用map记录元素是否存在(map.find(element) != map.end()即元素存在),然后再遍历链表,对每一个元素,找比它大和比它小的连续元素,从map中删除所有找过的元素,记录最大长度。

时间复杂度O(n)。

3. 给一个n,求从0到n所有数字的二进制表示中1的个数。

n为偶数时,n的二进制表示中1的个数 = (n/2)的二进制表示中1的个数。

n为奇数时,n的二进制表示中1的个数 = (n-1)的二进制表示中1的个数 + 1。

设f(n)为 0到n所有数字的二进制表示中1的个数。

n为奇数时,0到n的所有偶数的二进制表示中1的个数为 f(n/2),0到n的所有奇数的二进制表示中1的个数为 f(n/2)+(n+1)/2。

n为偶数时,0到n的所有偶数的二进制表示中1的个数为 f(n/2),0到n的所有奇数的二进制表示中1的个数为 f((n-1)/2)+((n-1)+1)/2。

综上,

f(n) = f(n/2) * 2 + (n+1) / 2, n为奇数

f(n/2) + f((n-1) / 2) + n/2, n为偶数

二、

五道算法题:

1. 矩形覆盖层数:给n个矩形的长和宽,长宽都大于等于的可以覆盖,问最多能覆盖的层数。

按矩形的宽和长从小到大排序,然后动态规划。

从第一个开始,记录到它为止最大覆盖层数。

对每个矩形,遍历它前面的所有矩形,若能覆盖,则更新该矩形的覆盖数的最大值。

2. 求排列的下一个

从最右开始找到n[i]<n[i+1]的第一对相邻数字。若没有则说明没有下一个排列。

将n[i]与最右数字(即i到最右的最小数字)交换,再将i+1到最右排序。

3. n个人比赛 0 VS 1, 2 VS 3, ..., (n-2) VS (n-1), 问i和j什么时候相遇(假设i和j每次都能胜出)。

假设都是编号较小者胜。

第一局:0 VS 1, 2 VS 3, ..., (n-2) VS (n-1)

第二局:0 VS 2, 4 VS 6, ..., (n-2) VS (n-1)

当 i / 2^k == j / 2^k 时,i和j相遇。

4. 求n位字符串有多少种形式

5. 求完全二叉树的最后一个节点

递归后序遍历,每次返回该子树的深度和其中最右节点指针。

对某个节点,若其左子树深度大于右子树,则该子树深度为左子树深度加一,返回其左子树最右节点指针;否则,该子树深度为右子树深度加一,返回其右子树最右节点指针。

hulu的更多相关文章

  1. Docker on YARN在Hulu的实现

    这篇文章是我来Hulu这一年做的主要工作,结合当下流行的两个开源方案Docker和YARN,提供了一套灵活的编程模型,目前支持DAG编程模型,将会支持长服务编程模型. 基于Voidbox,开发者可以很 ...

  2. Hulu大规模容器调度系统Capos

    Hulu是美国领先的互联网专业视频服务平台,目前在美国拥有超过2000万付费用户.Hulu总部位于美国洛杉矶,北京办公室是仅次于总部的第二大研发中心,也是从Hulu成立伊始就具有重要战略地位的分支办公 ...

  3. HuLu机器学习问题与解答系列(1-8)

    声明:本系列文章转载自微信公众号HULU,本人只是搬运工,仅供学习,如有不妥,后续告知删除. 嗨,欢迎回来,希望你能保持定期回顾的好习惯噢!下面是Hulu机器学习问题与解答系列的前8篇内容,点击主题名 ...

  4. Hulu面试题

    1.给定一个N位数,例如12345,从里面去掉k个数字,得到一个N-k位的数,例如去掉2,4,得到135,去掉1,5,得到234.设计算法,求出所有得到的N-k位数里面最小的那一个? 解决方案一:(1 ...

  5. [转]Hulu 2013北京地区校招笔试题

    填空题: 1.中序遍历二叉树,结果为ABCDEFGH,后序遍历结果为ABEDCHGF,逆序遍历结果为? 2.对字符串HELL0_HULU中的字符进行二进制编码,使得字符串的编码长度尽可能短,最短长度为 ...

  6. Hulu面试题解答——N位数去除K个数字(解法错误sorry)

    给定一个N位数,比如12345,从里面去掉k个数字.得到一个N-k位的数.比如去掉2,4,得到135,去掉1,5.得到234.设计算法.求出全部得到的N-k位数里面最小的那一个. 写的代码例如以下,思 ...

  7. 算法题目-记hulu失败的实习面试

    1.对于数组A[0,1,2,3,4,...,k],求得0<=i < j < k,且使得A[j] - A[i]为最大值. 最简单也最容易想到的搜索两遍,即可得到答案.i的位置从起始至倒 ...

  8. 国内在Amazon fireTV或者fire平板下载应用(netflix\hulu\YouTube)的方法

    1.首先需要vpn翻墙至U.S. 2.需要一个美国亚马逊账户,并设置收货地址 (Manage Your Fire & Kindle 1-Click Payment Settings ),如果只 ...

  9. Chart: Who pays the most in Seattle for software engineers

    http://www.geekwire.com/2012/chart-pays-seattle-software-engineers/ Chart: Who pays the most in Seat ...

随机推荐

  1. java异常复习

    如果有时学东西概念太多了,可以反着学,从结果到过程,从代码到概念,也许就不会那么枯燥了,比如学反射的时候. java异常复习 异常和错误的区别? 异常:程序或环境本身出现错误.(程序员可以捕获并处理) ...

  2. python3 isinstance()判断元素是否是字符串、int型、float型

    python3 isinstance()判断元素是否是字符串.int型.float型 isinstance是Python中的一个内建函数 语法: isinstance(object, classinf ...

  3. Django 搭建后台 favicon.ico 文件操作

    Django 搭建后台 favicon.ico 文件操作 使用 django 搭建后台服务器,我用的是 django 1.8 版本以上的,就是路由不是 url 而是 path 的,这里有一个关于fav ...

  4. CSS实现三角形、梯形、平行四边形、圆形、椭圆形、对话框、自适应正方形

    本文篇幅较长,希望能坚持看完,转载请注明出处,如果觉得好文请给个赞吧 CSS实现梯形 CSS实现三角形和梯形主要是依靠border是梯形的特性来做的,有点像相框的那种感觉. 首先我们先给一个正方形设置 ...

  5. dll和ocx的简单理解

    一.dll dll就是打包一些程序或者算法,根据我的理解分个类 1.算法的打包 比如打包C/C++的一些纯代码算法,计算平均值,极值,标准差....,只需要向外提供接口和入口参数,外部即可轻松调用 2 ...

  6. Linux必备知识

    一.Linux命令行常用快捷键 在企业工作中,管理Linux时—般不会直接采用键盘.显示器登录系统,而是会通过网络在远程进行管理,因此,需要通过远程连接具连接到Linux系统中.目前最常用的Linux ...

  7. 在ubuntu bionic下对基于qemu的arm64进行linux内核5.0.1版本的编译和运行

    一.环境介绍 OS:ubuntu bionic 64bit 二.准备工作 2.1 安装必要的开发工具 sudo apt-get install git flex bison build-essenti ...

  8. LightOJ 1393 Crazy Calendar(博弈)题解

    题意:r*c方格中,每个格子有一定石子,每次移动每格任意数量石子,只能向下或者向右动一格,不能移动为败 思路:显然是Nim,到右下曼哈顿距离为偶数的不用管,因为先手动一下后手动一下最后移到右下后还是先 ...

  9. SPOJ Hacking(字典树 + 搜索)题解

    思路1:字典树存每个串,然后dfs遍历是否存在.这里有个技巧,如果每次都重新初始化字典树为-1,那么会超时,所以我先初始化为-1,然后设一个Case,每个test时Case都++,那么只要开一个数组判 ...

  10. 【Coursera】Fourth Week(2)

    Netscape JavaScript and Firefox 当Microsoft收购Netscape失败之后: JavaScript 创造并用于与 Visual Basic 竞争(1995). N ...