首页 > 酷家乐一二面-Java实习
头像
阿帕亚
发布于 2020-05-26 17:26
+ 关注

酷家乐一二面-Java实习

下午两点开始面试,竟然是微信视频。两轮面试全是算法题,我的天!!!之前不是笔试过了吗????

一面四道算法题

  1. 给定一个数组,长度为n,有一个元素出现的次数超过n/2,快速定位到这个元素;(leetcode原题)
  2. 有两个长度为N的升序整数数组,他们任意两个数的和又可以组成一个数组,求这个和中的前K个数。要求给出O(KlogN)的算法;
  3. 一个m x n的Young氏矩阵(Young tableau)是一个m x n的矩阵,其中每一行的数据都从左到右排序,每一列的数据都是从上到下排序。需要设计一个O(m+n)算法,确定给定一个数是否在矩阵里面。(leetcode原题)
  4. 给定一个统计直方柱状图a,长度为n,计算出其所能围成的最大矩形面积。如[2,1,5,6,2,3],则输出10。(leetcode原题)
    做完把代码发给面试官。
    然后就没了,一个问题也不问,自我介绍都不需要。。。

二面算法题

麻将大师
麻将一共三种花色,分别是万(Character)、筒(Dot)和条(Bamboo)。
每种花色按照点数分为9种,从一到九。
每种点数4张牌,一共108张。
假设我们规定一种排序方法,对于任意两张牌:
如果一张是万,另一张是筒,则万排在筒之前
如果一张是万,另一张是条,则万排在条之前
如果一张是筒,另一张是条,则筒排在条之前
如果两张花色相同,则点数小的排在前面
然后从牌堆里面随机抽出N(1 ≤ N ≤ 108)张牌并组成一个序列,记为A。
现在,我们想要让A中所有麻将牌的排序符合我们之前的假设。
我们唯一能进行的操作是每次交换A中两张麻将牌的顺序。
请计算,给定一个序列A,我们至少需要进行多少次交换。
input
9 C1 C2 C3 B1 B2 B3 D1 D2 D3 output
3B1和D1交换,B2和D2交换,B3和D3交换即可。
(思路是C1 -> 11 B1-> 31 D1 ->21, 这样就转化为数组了,然后排序,对比排序前后的两个数组,得出结果。)

然后简单地聊了下业务,说是建筑设计相关的。这不是不抢别人饭碗吗???

大爷,觉得不错,点个赞再走!!!

更多模拟面试

全部评论

(8) 回帖
加载中...
话题 回帖

相关热帖

近期热帖

历年真题 真题热练榜 24小时
技术(软件)/信息技术类
查看全部

近期精华帖

热门推荐