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


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

手撕代码题目:

顺时针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 山东

相关推荐

10-17 12:16
同济大学 Java
7182oat:快快放弃了然后发给我,然后让我也泡他七天最后再拒掉,狠狠羞辱他一把😋
点赞 评论 收藏
分享
评论
3
收藏
分享
牛客网
牛客企业服务