首页 > 美团 一面/二面 客户端 面经
头像
Rannie
编辑于 2020-09-04 19:37
+ 关注

美团 一面/二面 客户端 面经

一面 8月26日
我觉得自己面得很不好,具体问题不太记得了(现在记得的只有:chmod有啥缺陷),但是面试官说他有一套自己的考核标准,度量我的知识内化能力,进而考核我的学习风格和学习能力。
  • 算法题:给定两个大小为 m 和 n 的正序(从小到大)数组 nums1 和 nums2。找出这两个正序数组的中位数,并且要求算法的时间复杂度为 O(log(m + n))
class Solution {
    public double findMedianSortedArrays(int[] nums1, int[] nums2) {
        int length1 = nums1.length, length2 = nums2.length;
        int totalLength = length1 + length2;
        if (totalLength % 2 == 1) {
            int midIndex = totalLength / 2;
            double median = getKthElement(nums1, nums2, midIndex + 1);
            return median;
        } else {
            int midIndex1 = totalLength / 2 - 1, midIndex2 = totalLength / 2;
            double median = (getKthElement(nums1, nums2, midIndex1 + 1) + getKthElement(nums1, nums2, midIndex2 + 1)) / 2.0;
            return median;
        }
    }

    public int getKthElement(int[] nums1, int[] nums2, int k) {
        int length1 = nums1.length, length2 = nums2.length;
        int index1 = 0, index2 = 0;
        int kthElement = 0;

        while (true) {
            // 边界情况
            if (index1 == length1) {
                return nums2[index2 + k - 1];
            }
            if (index2 == length2) {
                return nums1[index1 + k - 1];
            }
            if (k == 1) {
                return Math.min(nums1[index1], nums2[index2]);
            }
            
            // 正常情况
            int half = k / 2;
            int newIndex1 = Math.min(index1 + half, length1) - 1;
            int newIndex2 = Math.min(index2 + half, length2) - 1;
            int pivot1 = nums1[newIndex1], pivot2 = nums2[newIndex2];
            if (pivot1 <= pivot2) {
                k -= (newIndex1 - index1 + 1);
                index1 = newIndex1 + 1;
            } else {
                k -= (newIndex2 - index2 + 1);
                index2 = newIndex2 + 1;
            }
        }
    }
}


很遗憾的是,虽然用的是leetcode官方同款写法,面试官不太能认可我的代码,后面也没让进一步解释,说是因为这道题写不写出来也不能影响面试结果。
面试官暗示我Android部门hc不怎么多,问我愿不愿意转前端或者是ios,我说我愿意,我确实挺乐意一套前端的,至此我基本知道自己凉透心了,还是自己太菜了。

Hr 9月3号约我面试,难以置信……


二面 9月04日
面试官是前端的
  • 询问项目,基本没细问
  • 你上次写了代码是吧(一面面试官估计对我评价很差),再来一道吧,斐波拉契数列
  • class Solution{
        public int fib(int n){
            int a = 0, b = 1;
            for(int i = 0; i < n/2; i++){
                a = (a + b) % 1000000007;
                b = (a + b) % 1000000007;
            }
            if(n%2 == 1){
                return b;
            }else{
                return a;
            }
        }
    }


  • 面试官觉得我代码写得怪,不过这位面试官让我运行结果给他看,是对的。
  • 为什么想做前端
  • 为什么刷leetcode
  • 城市选择(我说我北京上海都可以,非要选的话我选择hc多的,面试官反问为什么选择hc多的,我说我喜欢稳妥)
  • 目前手里的offer情况
  • 反问
大概是被hr捞起来刷kpi了,叹气。

更多模拟面试

全部评论

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

推荐话题

相关热帖

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

近期精华帖

热门推荐