hulu
一、
一开始因为没收到含有共享文档链接的邮件,所以简单自我介绍,聊了几句项目。问了:
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的更多相关文章
- Docker on YARN在Hulu的实现
这篇文章是我来Hulu这一年做的主要工作,结合当下流行的两个开源方案Docker和YARN,提供了一套灵活的编程模型,目前支持DAG编程模型,将会支持长服务编程模型. 基于Voidbox,开发者可以很 ...
- Hulu大规模容器调度系统Capos
Hulu是美国领先的互联网专业视频服务平台,目前在美国拥有超过2000万付费用户.Hulu总部位于美国洛杉矶,北京办公室是仅次于总部的第二大研发中心,也是从Hulu成立伊始就具有重要战略地位的分支办公 ...
- HuLu机器学习问题与解答系列(1-8)
声明:本系列文章转载自微信公众号HULU,本人只是搬运工,仅供学习,如有不妥,后续告知删除. 嗨,欢迎回来,希望你能保持定期回顾的好习惯噢!下面是Hulu机器学习问题与解答系列的前8篇内容,点击主题名 ...
- Hulu面试题
1.给定一个N位数,例如12345,从里面去掉k个数字,得到一个N-k位的数,例如去掉2,4,得到135,去掉1,5,得到234.设计算法,求出所有得到的N-k位数里面最小的那一个? 解决方案一:(1 ...
- [转]Hulu 2013北京地区校招笔试题
填空题: 1.中序遍历二叉树,结果为ABCDEFGH,后序遍历结果为ABEDCHGF,逆序遍历结果为? 2.对字符串HELL0_HULU中的字符进行二进制编码,使得字符串的编码长度尽可能短,最短长度为 ...
- Hulu面试题解答——N位数去除K个数字(解法错误sorry)
给定一个N位数,比如12345,从里面去掉k个数字.得到一个N-k位的数.比如去掉2,4,得到135,去掉1,5.得到234.设计算法.求出全部得到的N-k位数里面最小的那一个. 写的代码例如以下,思 ...
- 算法题目-记hulu失败的实习面试
1.对于数组A[0,1,2,3,4,...,k],求得0<=i < j < k,且使得A[j] - A[i]为最大值. 最简单也最容易想到的搜索两遍,即可得到答案.i的位置从起始至倒 ...
- 国内在Amazon fireTV或者fire平板下载应用(netflix\hulu\YouTube)的方法
1.首先需要vpn翻墙至U.S. 2.需要一个美国亚马逊账户,并设置收货地址 (Manage Your Fire & Kindle 1-Click Payment Settings ),如果只 ...
- 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 ...
随机推荐
- JQuery判断input是否被禁用
<script src="jquery.min.js"></script> <br/><input type="text&quo ...
- django 项目中使用多数据库 multiple databases
假如在一个django项目中使用到了不只一个数据库, 其实这在大一点的工程中很常见,比如主从库 那么会涉及到如下一些东西 1, 定义 在settings中的DATABASE中定义会使用到的数据,比如除 ...
- HTML5交互性图表库
官网链接:https://www.hcharts.cn/ 出品公司链接:https://jianshukeji.com/ Highcharts Highstock highmaps
- 20145330 《网络攻防》 MSF基础应用
20145330 <网络攻防> MSF基础应用 1.实验后回答问题 (1)用自己的话解释什么是exploit,payload,encode. exploit:进行渗透攻击的模块合集 pay ...
- 实验二 Java 面向对象程序设计
实验内容 1 初步掌握单元测试和TDD 2 理解并掌握面向对象三要素:封面,继承,多态 3 初步掌握UML建模 4 熟悉SOLID原则 5 了解设计模式 (一)单元测试 D
- 2018-2019-1 20189218《Linux内核原理与分析》第四周作业
构造简单的Linux内核 显然用实验楼配好的环境做这个实验太简单了,按照没有困难制造困难也要上的原则,在自己的64位虚拟机上做这个实验. 按照课本(视频)上的步骤一直做下去,到编译生成init时出现了 ...
- Spring Security配置
更加优雅地配置Spring Securiy(使用Java配置和注解):https://www.cnblogs.com/xxzhuang/p/5960001.html 采用注解方式实现security: ...
- ASP.NET Web API 2入门
1.全局配置 Web API 2之前是这样的配置的: protected void Application_Start() { //未实现特性路由 WebApiConfig.Register(Glob ...
- [ios]ios读写文件本地数据
参考:http://blog.csdn.net/tianyitianyi1/article/details/7713103 ios - Write写入方式:永久保存在磁盘中.具体方法为:第一步:获得文 ...
- android适配各种分辨率的问题
Android设备屏幕的尺寸是各式各样的,如小米是4英寸的,Xoom平板是10英寸:分辨率也千奇百怪,800×480,960×540等:Android版本的碎片化问题更是萦绕于心,不过在设计应用时可以 ...