垃圾滴滴秋招,面试官自己都不知道最优解是啥,质疑我的最优解?


自我介绍,论文,科研项目,实习经历等问完

手撕代码题目:

顺时针90°旋转n*n的矩阵arr

这我手撕o(1)空间复杂度转的

代码如下:
   //复习旋转
    //循环旋转函数**circleRotate(a,b,c,d):**
    public static void circleRotate(int[][] arr, int a, int b, int c, int d){
        //ab,cd=确定了这外圈
        //其实每一批,旋转多少个数呢?d-b个数,比如下面d=3,b=0,d-b=3个
        for (int i = 0; i < d - b; i++) {
            //下标就是0 1 2 就0--d-b-1
            //所以替代的话,咱们下标从i=0--d-b-1,一个一个替换,跟交换函数一样
            int tmp = arr[a][b + i];//记忆橘色这一行,从左往右
            arr[a][b + i] = arr[c - i][b];//搬粉***那列,c从下往上
            arr[c - i][b] = arr[c][d - i];//搬红色c那行,d从右往左
            arr[c][d - i] = arr[a + i][d];//搬蓝色d那列,a从上往下
            arr[a + i][d] = tmp;//搬记忆的橘色a这一行,b从左往右
        }
        //最重要的就是下标控制,走向
    }


   //最开始ab=00,cd=N-1,M-1确定了这外圈,外圈旋转完,
    // 将ab++,cd--,就进入内圈,继续调用circleRotate函数循环旋转
    public static void rotateMatrixReview(int[][] arr){
        if (arr == null || arr.length == 0 || arr[0].length == 0) return;

        int a = 0;
        int b = 0;
        int c = arr.length - 1;
        int d = arr[0].length - 1;

        while (a < c) circleRotate(arr, a++, b++, c--, d--);
    }

    public static void test(){
        int[][] arr = {
                {1, 2, 3, 4},
                {6, 7, 8, 9},
                {11,12,13,14},
                {16,17,18,19}
        };
        int[][] arr2 = {
                {1, 2, 3, 4},
                {6, 7, 8, 9},
                {11,12,13,14},
                {16,17,18,19}
        };
        //旋转完以后
//        {16, 11, 6, 1},
//        {17, 12, 7, 2},
//        {18, 13, 8, 3},
//        {19, 14, 9, 4}
        rotateMatrixPrint(arr);
        for (int i = 0; i < arr.length; i++) {
            for (int j = 0; j < arr[0].length; j++) {
                System.out.print(arr[i][j] +" ");
            }
            System.out.println();
        }

        System.out.println();
        rotateMatrixReview(arr2);
        for (int i = 0; i < arr2.length; i++) {
            for (int j = 0; j < arr2[0].length; j++) {
                System.out.print(arr2[i][j] +" ");
            }
            System.out.println();
        }
    }

    public static void main(String[] args) {
        test();
    }

结果:
16 11 6 1 
17 12 7 2 
18 13 8 3 
19 14 9 4 

16 11 6 1 
17 12 7 2 
18 13 8 3 
19 14 9 4 


面试官说:你这复杂度太高了吧??????

我问面试官有比这更好的解法吗?
他说不知道呢,但是感觉太复杂了……………………

我就想问谁能o(1)空间的同时还能o(n)搞定????难道你都不把n^2的数字看完就可以旋转?????还有这种骚操作???????????

然后就是反问环节
我问:咱们部门做啥的?人员规模有多大?未来3--5年发展前景怎么样??
他说,这个问题不便回答,等下一个面试官给你解释………………

然后,刚刚回到工位,查看邮件,发现:


说好的下一个面试官呢??????????

垃圾滴滴,垃圾,浪费我一小时,给你手撕最优解了,你自己都不懂,还问我??

怪不得垃圾滴滴想割百姓韭菜,被国家查到死,垃圾人才办垃圾事儿!
#滴滴##滴滴内推##秋招##2023校招##offer许愿#
全部评论
因为滴滴后端没有hc了
点赞 回复 分享
发布于 2022-09-29 06:23 山东

相关推荐

昨天 15:02
已编辑
腾讯_前端开发(实习员工)
1面(约60min):基于项目提问:1.如何防止恶意iframe内嵌到页面2.什么是跨域?常见的跨域解决方案3.websocket和sse的区别;websocket怎么建立连接;5.多会话的websocket怎么实现的,讲讲方案4.大模型流式输出方案:fetch+reableStream.........算法题:1.异步调度器2.无重复最长子串的长度反问--------------------------------------------2面(约60min)::基于项目提问:1.多媒体格式转化插件的浏览器兼容方案2.microapp微前端的了解3.传统iframe的缺点,如何解决url丢失,dom节点割裂4.延申了wujie,讲讲对wujie的了解,怎么实现沙箱,如何建立dom的proxy代理机制(类似vue的发布订阅者模式).........算法题:1.手写eventEmitter类2.回溯-目标和反问-------------------------------------------3面(30min):看看落地的ai项目的代码并进行提问.........算法题:1.三角形最小路径和反问------------------------------------------hr面1.如何快速地熟悉项目及进行需求开发2.你的缺点是什么3.讲讲未来前端发展趋势4.讲讲对AI、Openclaw的理解--------------------------------------------感觉现在基本不会纯八股文开局,更多的是拷打项目,穿插八股,更多的是看个人的思考与理解,笔者认为简历上还是要有自己一个比较完善的项目,最近在面试感觉也欠缺这部分,感觉挺多面试官想通过你演示的项目来进行拷打的
查看25道真题和解析
点赞 评论 收藏
分享
评论
4
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务