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 ...
随机推荐
- 02: 安装epel 解决centos7无法使用yum安装nginx
参考网址: http://www.mamicode.com/info-detail-1671603.html 1.yum命令安装 yum install epel-release -y 2.更新数据 ...
- Cocos 开发笔记
经发现: cocos creator 提供的hello world 模版中.只有HelloWorkd.js中 properties 属性 text的值不是'hello world!' Label 组件 ...
- Educational Codeforces Round 21 Problem D(Codeforces 808D)
Vasya has an array a consisting of positive integer numbers. Vasya wants to divide this array into t ...
- MySQL 5.7.18 解压版安装
原文链接:https://my.oschina.net/u/3474266/blog/895696 我在安装免安装版的5.7.18的时候出现了问题,正好找到这个,十分感激 今天下载安装了MySQL C ...
- spring与spring-data-redis整合redis
<?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.sp ...
- Specify Computed Columns in a Table
https://docs.microsoft.com/en-us/sql/relational-databases/tables/specify-computed-columns-in-a-table ...
- 9.1C#中类的定义
9.1 C#中类的定义 C#使用class关键字来定义类 [默认internal] class MyClass { //Class Members } 在默认情况下,类声明为内部的,即只有当前项目 ...
- BZOJ1355: [Baltic2009]Radio Transmission KMP
Description 给你一个字符串,它是由某个字符串不断自我连接形成的. 但是这个字符串是不确定的,现在只想知道它的最短长度是多少. Input 第一行给出字符串的长度,1 < L ≤ 1, ...
- C++ 清空队列(queue)的几种方法
C++中的queue自身是不支持clear操作的,但是双端队列deque是支持clear操作的. 方法一 直接用空的队列对象赋值 queue<int> q1; // process // ...
- 【转载】TCP 与 UDP 的区别
原文地址:TCP 与 UDP 的区别 首先咱们弄清楚,TCP协议和UCP协议与TCP/IP协议的联系,很多人犯糊涂了,一直都是说TCP/IP协议与UDP协议的区别,我觉得这是没有从本质上弄清楚网络通信 ...