虾皮测开提前批复活成功,准备HR面

虾皮已拿意向书,感谢牛客

@牛客人品酱 攒人品offer++

先mark一下,有空写面经。两次面试主要都在问八股文。


8.5更新:被捞了,明天再面一轮复试
8.6更新
面了15分钟,讲了讲自己在美团的上一个需求是啥,怎么测的,聊了聊研究生的项目,问了点八股文,做了道智力题烧绳子。自我感觉不错,许愿HR面(虾皮的面试很玄学)
8.10更新 让内推的同学查了一下,已经进入HR面了,冲!


8.12更新
十一点半收到了hr的电话,电话面了15分钟,求求了,给个offer吧



7.26 二面
1.自我介绍
2.半个小时八股文
3.熟悉的数据结构和算法
数据结构:线性表(数组和链表),栈和队列,键值对,二叉树,堆
算法:搜索算法和排序算法
4.数据结构具体应用?
数组和链表:存储数据
堆:堆空间
栈:java虚拟机栈和本地方法栈
队列:消息队列,kafka
5.快速排序原理,知道哪些快速排序?https://segmentfault.com/a/1190000004410119
自己写了三种,献丑了
 //快排1,交换法,不稳定,NlogN
    public static void quickSort1(int[] arr, int start, int end){
        if(start > end){
            return;
        }
        int i = start;
        int j = end;
        while (i < j){
            while (j > i && arr[j] > arr[start]){
                j--;
            }
            while(i < j && arr[i] <= arr[start]){
                i++;
            }
            exchange(arr,i,j);
        }
        exchange(arr, start, i);
        quickSort1(arr, start,i-1);
        quickSort1(arr, i+1, end);

    }
    //快排2,填坑法
    public static void quickSort2(int[] arr, int start, int end){
        if(start >= end){
            return;
        }
        int sentry = arr[start];
        int i = start, j = end;
        while (i < j){
            while (arr[j] > sentry && i < j){
                j--;
            }
            arr[i] = arr[j];
            while (arr[i] <= sentry && i < j){
                i++;
            }
            arr[j] = arr[i];
        }
        arr[j] = sentry;
        quickSort2(arr,start, j-1);
        quickSort2(arr, j+1, end);
    }

    //快排3,顺序遍历法
    public static void quickSort3(int[] arr, int start, int end){
        if(start >= end){
            return;
        }
        int sentry = arr[end];
        int storeIndex = start;
        for (int i = start; i < end; i++) {
            if(arr[i] < sentry){
                exchange(arr, i, storeIndex);
                storeIndex++;
            }
        }
        exchange(arr,storeIndex,end);
        quickSort3(arr,start,storeIndex-1);
        quickSort3(arr,storeIndex+1,end);
    }


6.什么是桶排序?
7.数据库索引相关,索引是什么,索引的底层实现,不能命中索引的场景,为什么不能命中?
8.线程与进程?什么是线程安全问题?乐观锁和悲观锁?具体的应用场景。乐观锁:AtomicInteger; 悲观锁:synchronized; select for update
9.TCP三次握手,状态
10.点击url的全过程
11.进程间的通信方式
12.测试用例:支付宝转账功能
13.代码题:中文数字转换成阿拉伯数字
public static int chineseToInt(String s){
        Map<String, Integer> map = new HashMap<>();
        map.put("零", 0);
        map.put("一", 1);
        map.put("二", 2);
        map.put("三", 3);
        map.put("四", 4);
        map.put("五", 5);
        map.put("六", 6);
        map.put("七", 7);
        map.put("八", 8);
        map.put("九", 9);
        map.put("万", 10000);
        map.put("千", 1000);
        map.put("百", 100);
        map.put("十", 10);

        int res = 0;
        char[] chars = s.toCharArray();
        Stack<Integer> stack = new Stack<>();
        for (int i = 0; i < chars.length; i++) {
            if(map.get(String.valueOf(chars[i])) < 10){
                stack.push(map.get(String.valueOf(chars[i])));
            }else if(map.get(String.valueOf(chars[i])) == 10000){
                res = res * 10000;
            }else if(map.get(String.valueOf(chars[i])) == 10 && stack.isEmpty()){
                res = res + 10;
            }else {
                res = res + stack.pop() * map.get(String.valueOf(chars[i]));
            }
        }
        if(!stack.isEmpty()){
            res = res + stack.pop();
        }
        return res;


    }


7.27 感谢信

#面试复盘##Shopee#
全部评论
这才刚开始,多总结下,后面机会很大
点赞 回复 分享
发布于 2021-07-27 20:19
发了感谢信吗?
点赞 回复 分享
发布于 2021-07-29 08:04
请问楼主简历里有写项目和实习吗?面试是完全忽略项目和实习考察就有些诡异
点赞 回复 分享
发布于 2021-07-29 08:56
shopee真的好重视基础知识,笔试一半都是基础,面试还问
点赞 回复 分享
发布于 2021-07-29 09:59
北交大佬都不行吗呜呜呜
点赞 回复 分享
发布于 2021-07-29 16:11

相关推荐

评论
3
24
分享
牛客网
牛客企业服务