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存储满足要求的子集了。代码在这里
  • 相关阅读:
    Path文件操作实例
    Cache缓存对象缓存对象
    Session对象实例
    移动端适配问题
    webpack4 优化性能
    webpack源码分析
    wepack源码解析1
    webpack面试题
    asnyc await
    node 知识
  • 原文地址:https://www.cnblogs.com/wxshi/p/5918201.html
Copyright © 2011-2022 走看看