注册一亩三分地论坛,查看更多干货!
您需要 登录 才可以下载或查看附件。没有帐号?注册账号 
x
下午的时候做了Expedia的OA,5(或者6,有点记不清了)道选择题,2道coding题,都是地里的帖子的原题,但是本着分享一下顺便求米的心态还是过来发一下。
首先说一下我是直接官网海投,岗位是mobile Engineer I, 投这个岗原因是目前官网上我没有找到SDE的投递链接,不知道是取消还是暂停了,我看mobile也没啥特殊的要求就投了。 昨天中午投的,投了之后秒发的性格测试,接着过了半小时我还没做性格测试的时候就发了OA, 然后时间要求是三天所以我昨天来地里看了下题今天就抓紧给做了。万幸虽然岗位不一样但题目和SDE是一样的,可以确定他们就只有这几道题了hhh
选择题就不说了很简单,coding 分别是data updates 和 Finding Integers:
data updates 的题目细节就是给定两个输入, 一个data的list[1,2,3,4], 另一个update的方式类似[[1,3],[2,4]], update的[1,3] 和[2,4]是更新两次,[1,3]代表把data的第1位到第3位的数字更新为相反数, [2,4]代表第2到第4位更新为相反数(这里注意update里的数字不入一个新元素的subarray中第k大的元素,最后返回一个数组。同样例如arr = [1,2,3,4], k = 2, 从前2位开始,第二大的是1, 之后是前三位[1,2,3], 第二大的是2, 前四位[1,2,3,4], 第二大的还是2, 所以最后返回的是[1,2,2]。
方法就是用优先队列,保持队列中一直有k个元素,每次排在第一位的就是第k大的,拿出来放在要返回的数组里就可以了。
第一次写类似的OA经验,可能有的地方表述的不是很清楚,但还是希望能帮到大家,也欢迎大家有问题的话可以回复,最后还是求米!! |