zoukankan      html  css  js  c++  java
  • 17滴滴出行秋招

    2017滴滴出行校招

    正在找工作,互联网也不够景气,各种缩招,做笔试做的心塞。去参加某公司的宣讲会,主办方准备了一个教室,结果来了至少5教室的人(学计算机的人真多啊),没我的岗位去的目的是给同学助攻,结果卷纸不够。想着下午还有滴滴出行的笔试题,就先回来了,开电脑发现已经开考快一个小时了,就随便写了几道交了。=.= 又特么打酱油了。应聘的是算法岗,都是统计、机器学习方面的题目,这个我喜欢。印象中的几道题写下来,下面的是我从我的为知笔记拷贝过来的,为知笔记可能和博客园解析markdown效果不太一样,拷贝过来后格式有点乱。

    选择题##

    1. 一个不透明的箱子中有红、黄、白、蓝、绿五种小球,每个人从篮子中取出2个小球,问至少需要多少个人抽,才能保证抽到重复颜色的小球(16
      一个人抽两个小球的结果一共有15中可能颜色相同的5个,颜色不同的有C(5,2)在第16个人抽的时候出现重复,所以是16人
    2. 35!末尾有多少个零?
      10=5*2,所以找0的个数只用找有多少个5的倍数2要比5多,所以有5,10,15,20,25,30,35,总共7个,由于25=5*5多出一个,所以共有8个
    3. 5个红球,10个黄球,15个蓝球,随机拿一个(不放回),则红色球先被拿完的概率7/12
      红球先被拿完的情况有红黄蓝红蓝黄分别讨论
      • 红黄蓝
        10个黄球,总共11个空,红球先被拿完就是用红球去前10个空,插入一个就多个空,总共有10*11*12*13*14种情况,由于红球是无差别的,需要除以A(5,5),即得到C(14,5),然后在用类似方法,把红黄插入蓝色即得到C(29,15)
      • 红蓝黄
        15个蓝色球,插入15个空位,有15*16*17*18*19,即得到C(19,5),红蓝插入到红色球中即得到C(29,20)
      • 总体情况
        A(30,30)/A(5,5)A(15,15)A(10,10)
        注意 A(10,10) = A(10,6)*A(5,5)
    4. 如图三个正方形并列,求x,y,z加起来多少度(90)

      tanz = 1,z=45°,tany = 1/2,tanx = 1/3 tan(x+y) = (1/2+1/3)/(1-1/2*1/3)=5/5=1
    5. 一根长度为100米长的绳子,需要被切割成10000根长度为1cm的小段,若一次可以同时切割多根绳子,请问最少需要切割(14)次
      一刀切2段 log22 ......,2n段需要N刀。213 < 10000 <214 需要14刀。
    6. 2016欧洲杯小组赛,分4个小组进行,每个小组由6支球队组成,每支球队都与同组对手比赛一场,小组共多少场比赛(60)
      (5+4+3+2+1)*4 = 60
    7. 假如技术团队有50人,其中会C语言的有36人,会JAVA的有44人,会GO语言的有32人,同时会三种语言的至少有多少人(B)?
      A.20 B.12 C.10 D.8
      我不会,我蒙的B 12人,我的方法是这样。
      假设C 和 JAVA的人构成了全集,为什么选这两个?答:人多。44 + 36 - X =50,X=30,下图

      三种语言都会的人就在这30人里面,32 - 6 - 14 = 12

    编程题##

    1. 题目描述
      给定一个十进制数M,以及需要转换的进制数N。将十进制数M转化为N进制数
      我的代码,可能存在bug
      public static void solution(int a,int n)
      {
          Stack<String> s = new Stack<String>();
          while(a != 0)
          {
              int remider = a % n;
              if(n > 10 && remider > 10)
              {
                  int m = remider -10 + 97; //'a'
                  s.push((char)m + "");
              }
              else
              {
                  s.push(remider + "");
              }
              a /= n;
          }
          while(!s.isEmpty())
          {
              System.out.print(s.pop());
          }
      }
      
    2. 题目描述
      给定一个有n个正整数的数组A和一个整数sum,求选择数组A中部分数字和为sum的方案数。 当两种选择方案有一个数字的下标不一样,我们就认为是不同的组成方案
      输入例子
      5 15 5 5 10 2 3
      输出例子
      4
      解答
      这是这么思考这个问题的:找出所有的子集,统计满足子集的个数,可以利用我前面的一篇文章求集合的子集总结及案例 解答。略微不同的是下标不一样,认为是不同的组成方案,所以就不能用set存储满足要求的子集了。代码在这里
  • 相关阅读:
    思念
    空白
    curl json string with variable All In One
    virtual scroll list All In One
    corejs & RegExp error All In One
    socket.io All In One
    vue camelCase vs PascalCase vs kebabcase All In One
    element ui 表单校验,非必填字段校验 All In One
    github 定时任务 UTC 时间不准确 bug All In One
    input range & color picker All In One
  • 原文地址:https://www.cnblogs.com/wxshi/p/5918201.html
Copyright © 2011-2022 走看看