阿里巴巴面试流程

文章目录

  • 1)招聘流程
    • 线上测评/笔试
    • 面试
    • Offer
    • 入职
  • 2)线上测评/笔试(答题期间不允许切屏,否则视为作弊)
    • 2.1)线上测评
      • 2.1.1) 10道阅读题,考察你的审题分析能力(10分钟,每道题45s-90s不等)
      • 2.1.2) 10道计算题,考察你的审题和简单计算(10分钟,每道题45s-90s不等)
      • 2.1.3) 10道看图题,考察你的观察和规律总结能力。(10分钟,每道题45s-90s不等)
      • 2.1.4) 98道心理测试题,单纯的测试个人性格和自我认知。(不限时间)
    • 2.2) 笔试
      • 2.2.1) 笔试规则
      • 2.2.2) 笔试环境测试
      • 2.2.3) 笔试编程(2020-03-30,允许切换本地ide,电脑手机双监控,舞弊者一年内不得再申请面试就职)
  • 3)面试((凉凉,准备开始写一个各技术点底层原理和源码解析专栏了,等目前项目结束开始更,大概4.15左右。))

写这篇博文,只是为了让所有志同道合的小伙伴,少走点弯路。也是为了给自己留点前车之鉴,以防以后重蹈覆辙。
学习和生活已经花费了不少时间精力了,这些可以简单分享的困惑,我踩过就够了。
未完待续(希望有这个机会吧)

附上阿里巴巴、腾讯等大厂的实习、校招渠道

1)招聘流程

阿里巴巴面试流程_第1张图片
线上测评/笔试>>面试>>Offer>>入职

线上测评/笔试

面试

Offer

入职

2)线上测评/笔试(答题期间不允许切屏,否则视为作弊)

2.1)线上测评

2.1.1) 10道阅读题,考察你的审题分析能力(10分钟,每道题45s-90s不等)

  • 给一段文字,阅读完后根据问题,从4个选项中选出你认为正确的答案。
    (不知道是否答案唯一,一千个人心里有一千个哈姆雷特,仿佛跟高中的阅读理解题差不多)

2.1.2) 10道计算题,考察你的审题和简单计算(10分钟,每道题45s-90s不等)

  • 给出一个图,这里建议先看题目再看图,从4个选项中,选出和你计算相同的值。(唯一答案,提前准备好纸笔,时间有点赶,注意看时间,没时间了就蒙,不要空着)

2.1.3) 10道看图题,考察你的观察和规律总结能力。(10分钟,每道题45s-90s不等)

  • 每道题给出几个已知图形,从选项中选出你认为有规律的下一幅图。(个人不认为这里有唯一答案,每个人的观察点不同,不必过于纠结)

2.1.4) 98道心理测试题,单纯的测试个人性格和自我认知。(不限时间)

  • 每道题给出3个选项,分别选择一个最符合你的,一个最不符合你的。
    (这里做着做着很容易怀疑自己,很多选项明明都想选或者都不想选,那就不要犹豫,第一感觉来填就好了)

2.2) 笔试

2.2.1) 笔试规则

详见阿里巴巴2020实习生招聘笔试公告

2.2.2) 笔试环境测试

附上测试地址

2.2.3) 笔试编程(2020-03-30,允许切换本地ide,电脑手机双监控,舞弊者一年内不得再申请面试就职)

一共两道题目(PS:都不难啊,就是要做全对是真的难,不知道后台测试用例,很难想周全)

题目一:提供三个参数,n表示n个养鸡场,m表示天数m,k表示每个养鸡场每日增加k只小鸡。每天结束的时候,小鸡数量最多的养鸡场小鸡数减半,及假设小鸡数量最多的养鸡场小鸡数量为x,当日结束变为x/2。求最后一共拥有多少只小鸡。
输入用例

3 3 100
100 200 400

输出用例

925

解题思路:
①建立数组,排序。
②sum总数=sum+n*k-max/2;

import java.util.*;

public class Demo1 {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        int n = scanner.nextInt();
        int m = scanner.nextInt();
        int k = scanner.nextInt();
        int[] ints = new int[n];
        long max = 0;
        int temp;
        for (int i = 0; i < n; i++) {
            ints[i] = scanner.nextInt();
            max += ints[i];
        }
        for (int i = 0; i < m; i++) {
            for (int j = 0; j < ints.length; j++) {
                ints[j] = ints[j] + k;
            }
            Arrays.sort(ints);
            max = max + n * k - (ints[ints.length - 1] /= 2);
        }
        System.out.println(max);
    }
}

题目二:给一个参数n,再给n个数,求这些数所能排列成的顺序数组的最大值的数学期望。(最高保留六位小数)
(这题我觉得思路是没问题,但是不知道存在什么地方没考虑,请大家解惑,这里只说下我的思路)

1,2,3,1 2,2 3,1 2 3

输入用例

3
1 2 3

输出用例

2.333333

思路:
①由原理可知,其实就是一个倒叙相乘求和除以总排序数:
即排序后Arrays.sort(ints);max+=ints[i-1]*i; sum+=i;max/=sum;
测试用例没问题,但是不知道哪里想错了。

import java.text.DecimalFormat;
import java.util.Arrays;
import java.util.Scanner;

public class Demo2 {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        int n = scanner.nextInt();
        int[] ints = new int[n];
        for (int i = 0; i < n; i++) {
            ints[i] = scanner.nextInt();
        }
        Arrays.sort(ints);
        double max = 0;
        int sum = 0;
        for (int i = n; i > 0; i--) {
            max += ints[i - 1] * i;
            sum += i;
        }
        max /= sum;
        DecimalFormat decimalFormat = new DecimalFormat("0.000000");
        System.out.println(decimalFormat.format(max));
    }
}

3)面试((凉凉,准备开始写一个各技术点底层原理和源码解析专栏了,等目前项目结束开始更,大概4.15左右。))

面试:(以下非顺序提问,想起来啥写啥了)
1、项目
2、树结构拓展
3、各种底层原理(PS:如果不是很精通到底层的,建议各位别写会用,写了解就好)
4、挑一个自己觉得最拿手的技术点描述。
5、事务隔离级别
6、事务是怎么保证原子性的
7、(反正就是各种东西都会问到原理层面,所以建议简历上只写自己熟悉底层原理的,凡是写了熟悉及以上的,都会问到原理的层次。。)

!!另外,大佬很友善,没有咄咄逼人的感觉,最后还会问你有啥想问的,我就问了应该怎么规划学习更好,大佬建议多看看各种技术的底层实现。谢谢大佬,感觉很受益,继续学习加油!!大家共勉!!

你可能感兴趣的:(三年内一定要进大厂)