• 【数据挖掘】滴滴公司数据挖掘工程师笔试题


    1 选择题

    1、Lm19980107【单选】下面哪种算法会导致信息不可还原?C
    A、RSA
    B、DES
    C、SHA1
    D、LZ77

    SHA1用于Hash,不可还原。

    RSA、DES、LZ77都用于数据加密或压缩,均可还原。

    2、下面函数的输出结果是(C)
    void func() {
    int k = 1^(1 << 31 >> 31);
    printf(“%d\n”, k);
    }
    A、0
    B、-1
    C、-2
    D、1

    解析:右移运算左侧补符号位; 补码转源码:补码减1;除符号位全部取反

    int
    int 为有符号整数,以 32 位存储,因此1的二进制表示为:

    00000000` `00000000` `00000000` `00000001
    
    • 1

    1<<31
    将所有数整体向左移31位,溢出的数直接舍去,右侧补0。即:

    10000000` `00000000` `00000000` `00000000
    
    • 1

    ()>>31
    将所有数整体向右移31位,左侧补符号位数字。即:

    11111111` `11111111` `11111111` `11111111
    
    • 1

    1^()
    异或运算,得

    11111111` `11111111` `11111111` `11111110
    
    • 1

    此时符号位为1,代表次数为负数。因为计算机中加减运算使用的都是补码,所以不能直接将补码形式二进制数通过除二取余法转换为十进制数。要先将补码转换为原码,再通过除二取余法转换为十进制数。

    负数补码转换为原码步骤:

    1. 补码-1,得反码:

      11111111 11111111 11111111 11111101

    2. 反码除符号位其余位取反,得原码:

      10000000 00000000 00000000 00000010

    最后,将原码使用除二取余法转换为十进制数,为-2。

    3、下面哪个SQL语句可以查询出“id存在于A表中,但不存在于B表”的数据? B
    A、 select A.* from A join B on A.id=B.id where B.id is null;
    B、 select A.* from A left outer join B on A.id=B.id where B.id is null;
    C、 select A.* from A right outer join B on A.id=B.id where B.id is null;
    D、 select A.* from A inner join B on A.id=B.id where B.id is null;

    4、已知一棵二叉树,如果先序遍历的节点顺序是:ADCEFGHB,中序遍历是:CDFEGHAB,则后序遍历结果为()D
    A、 CFHGEBDA
    B、 CDFEGHBA
    C、 FGHCDEBA
    D、CFHGEDBA

    5、在64位操作系统上,下面程序返回什么结果:D

    int main() {
        int *k[10][30];
        printf(""%d\n"", sizeof(k));
        return 0;
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5

    A、 4
    B、 8
    C、 1200
    D、 2400

    解析:int k,表示的是指针数组,一共有1030=300个元素。在64位系统下,每个指针的长度是8字节,因此总长度为2400字节

    6、以下哪些方法不适合用来对特征分布进行分析?D
    A、 PCA
    B、IsoMap
    C、 LLE
    D、 KNN

    解析:PCA(principle component analysis),即主成分分析法,是一个非监督的机器学习算法,是一种用于探索高维数据结构的技术,主要用于对数据的降维,通过降维可以发现更便于人理解的特征,加快对样本有价值信息的处理速度,此外还可以应用于可视化(降到二维)和去噪。

    Isomap(Isometric Feature Mapping)是流行学习的一种,用于非线性数据降维,是一种无监督算法。

    LLE(Locally Linear Embedding)算法,即局部线性嵌入算法。 该算法是针对非线性信号特征矢量维数的优化方法,这种维数优化并不是仅仅在数量上简单的约简,而是在保持原始数据性质不变的情况下,将高维空间的信号映射到低维空间上,即特征值的二次提取 。

    7、以下不属于优化求解方法的是?C
    A、 L-BFGS
    B、 SGD
    C、 ReLu
    D、模拟退火

    解析:L-BFGS是解无约束非线性规划问题最常用的方法,具有收敛速度快、内存开销少等优点,在机器学习各类算法中常有它的身影。 简单的说,L-BFGS和梯度下降、SGD干的同样的事情,但大多数情况下收敛速度更快,这点在大规模计算中很重要。

    8、ROC曲线和AUC常被用来评价一个二值分类器(binary classifier)的优劣。对于模型的 ROC 曲线,与哪一点越接近,表明该分类器的性能越好?B
    左上,即TPR=0, FPR=1
    左上,即FPR=0, TPR=1
    右下,即TPR=0, FPR=1
    右下,即FPR=0, TPR=1

    9、在0到1之间随机选择3个小数,他们的和小于1的概率是?D

    A、1/2
    B、1/3
    C、1/4
    D、1/6

    解析:设所取的三个数分别为 x、y、z ,
    则 0 满足上述条件的点 P(x,y,z)构成一个棱长为 1 的正方体,体积为 V=111=1 ,
    满足 x+y+z=1 的点是分别过(1,0,0)、(0,1,0)、(0,0,1)的平面,
    而满足 x+y+z<1 的点位于正方体内、平面的下方,体积为 V1=1/31/2111=1/6 ,

    10、在以下不同的场景中,使用的分析方法不正确的,B
    A、 根据司机最近一年的服务订单数据,用聚类算法判断出滴滴司机在不同产品线下所属的司机层级
    B、 根据司机近期的订单数据,用聚类算法拟合出乘客未来可能的乘车花费价格公式
    C、 用关联规则算法分析出乘坐快车的乘客,是否适合推荐乘坐专车
    D、 根据乘客最近的乘车信息,用决策树算法识别出乘客可能是男还是女

    解析:B选项,预测消费需要用回归模型来做。而不是聚类算法。

    11、用 0,1,2,3,4,5组成没有重复数字的四位数,其中千位数字大于百位数字,且百位数字大于十位数字的四位数的个数是?B
    A、 36
    B、 60
    C、 72
    D、 300

    解析:前面三位数选出顺序是固定的, 共有C(3,6),最后一位任意选 即C(3,6)*C(1,3)=60

    12、有10层台阶,小明每次可以爬一台阶或者两台阶,请问,爬到10层台阶,小明一共有(A)种爬法?
    A、 89
    B、 90
    C、 91
    D、 92

    解析:斐波拉契数列,dp[n] = dp[n - 1] + dp[n - 2]

    dp[1] = 1, dp[2] = 2

    dp[3] = dp[1] + dp[2] = 1 + 2 = 3

    dp[4] = 3 + 2 = 5

    dp[5] = 5 + 3 = 8

    dp[6] = 8 + 5 = 13

    dp[7] = 13 + 8 = 21

    dp[8] = 21 + 13 = 34

    dp[9] = 34 + 21 = 55

    dp[10] = 55 + 34 = 89

    13、两人约会,约好6点到7点之间在指定地点见面,两人都会在6点到7点之间随机选择一个时间点到达约定地点,如果到了之后等15分钟还没见到对方,就会立即走掉,那么哪个描述是对的?B
    A、 这俩人能见到面的概率更大
    B、 这俩人不能见到面的概率更大
    C、能见面和不能见面出现概率相同
    D、 无法计算出准确概率

    解析:通过画图,可以 求解出相遇的概率为7/16

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-OeVH7PcK-1659848927094)(/home/mgege007/Desktop/13.png)]

    14、某海岛城市的主要产业为旅游业,之前已经运营了M个景点,现在扩大运营新增了N(>1)个景点,为了方便游客通行任意两个景点都开通了直通巴士(在两个景点间往返),此次新增景点共新开通了58趟直通巴士,请问这个海岛城市总共运营了多少个景点?D
    A、 14
    B、 15
    C、 16
    D、 17

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-UTnT2IKO-1659848927095)(/home/mgege007/Desktop/14.png)]

    15、假如有1500盏灯,它们的开关按1-1500进行编号,一开始都是亮着的,我们按照如下步骤操作:C

    1. 切换编号为2的倍数的开关
    2. 切换编号为5的倍数的开关
    3. 切换编号为7的倍数的开关
      最终还有多少盏灯亮着?
      A、 236
      B、 514
      C、 750
      D、 535

    解析:

    1. 切换编号为2的倍数的开关
      1500/2=750个灯是亮的,750个灯是灭的
    2. 切换编号为5的倍数的开关
      在5的倍数中,并且是2的倍数的的灯又灭变成了亮,数量为1500/10=150个灯重新亮起来
      在5的倍数中,不是2的倍数的的灯灭了,数量也为150个
    3. 切换编号为7的倍数的开关
      是7倍数是5的倍数,不是2倍数的灯变亮了,数量为1500/35-1500/70=21
      是7倍数是5的倍数是2的倍数的灯变灭了,数量为1500/70=21

    所以亮的灯为750个

    16、北之于东南,正如西南之于:D
    A、 东
    B、南
    C、 西
    D、 北

    17、找规律填数:10, 17, 26, 37, ?C

    46
    52
    50
    56

    解析:

    17-10=7

    26-17= 9

    37-26 =11

    50-37 = 13

    18、有15瓶一样的可乐,其中有一瓶变质了, 喝了一口之后2小时会闹肚子。最少需要多少只小白鼠做实验,才能在2小时时间内找到有变质的一瓶?
    A、 7
    B、6
    C、 5
    D、 4

    15瓶可以转换为24种组合,即用4只小白鼠的闹肚子状态表示

    可乐序号 闹肚子状态 闹肚子小白鼠编号

    1 0 0 0 1 1

    2 0 0 1 0 2

    3 0 0 1 1 1 2

    4 0 1 0 0 3

    5 0 1 0 1 1 3

    6 0 1 1 0 2 3

    7 0 1 1 1 1 2 3

    8 1 0 0 0 4

    9 1 0 0 1 1 4

    10 1 0 1 0 2 4

    11 1 0 1 1 1 2 4

    12 1 1 0 0 3 4

    13 1 1 0 1 1 3 4

    14 1 1 1 0 2 3 4

    15 1 1 1 1 1 2 3 4

    给1号小白鼠喝1 3 5 7 9 11 13 15号可乐的混合

    给2号小白鼠喝2 3 6 7 10 11 14 15号可乐的混合

    给3号小白鼠喝4 5 6 7 12 13 14 15号可乐的混合

    给4号小白鼠喝8 9 10 11 12 13 14 15号可乐的混合

    如果1号小白鼠闹肚子 则只可能是1号可乐变质

    如果1 2 3号小白鼠都闹肚子而4号没有 则只可能是7号可乐变质

    以此类推

    2^4=16>15,所以最少4只

    19、在某一个国家,由于战争导致民不聊生,贫民纷纷逃难。在逃亡的路上,难民A由于食物全部吃完,濒临饿死,就在这时正好有两个好心难民B和C路过,他们决定帮助这位可怜人;当时B带有4个烧饼,C带有5个烧饼,最后他们三人分吃了所有食物。由于他们的救济,最后A获救了。一年后,A飞黄腾达了,为了感激当年的两位救助他的人,他一共拿出9个金元宝赏报答给B和C。对于9个金元宝的分配给B和C,你觉的合理的分配应该是:C
    A、 B拿1个金元宝,C拿8个金元宝
    B、 B拿2个金元宝,C拿7个金元宝
    C、 B拿3个金元宝,C拿6个金元宝
    D、 B拿4个金元宝,C拿5个金元宝

    B拿出了4个饼,C拿出了5个饼,因为是他们三个人分吃的食物,也就是说一共是9个饼,三个人分,平均每个人就是3个,而A分到的3个饼是从B那里出了1个,C拿出了2个,凑到了3个饼,也就是说,B出了1/3,C出了2/3,所以就是B=1/39=3,C=2/39=6

    20、0,5,27,119,495,2015,(A )
    A、 8127
    B、 100005
    C、 10075
    D、 11075

    解析:

    5=3²-2²
    27=6²-3²
    119=12²-5²
    495=24²-9²
    2015=48²-17²
    所以8127=96²-33²
    逻辑:3 6 12 24 48 96 后者是前者两倍
    2 3 5 9 17 33 后者=前者*2-1
    故答案选择A

    2 编程题

    1、我们把只包含质因子 2、3 和 5 的数称作丑数(Ugly Number)。求按从小到大的顺序的第 n 个丑数。
    示例:

    输入: n = 10
    输出: 12
    解释: 1, 2, 3, 4, 5, 6, 8, 9, 10, 12 是前 10 个丑数。

    说明:
    1 是丑数。
    n 不超过1690。

    解析:三个位置分别尝试使用一次乘2机会,乘3机会,乘5机会,看看哪个最小,最小的那个就是下一个丑数。最后,那个得到下一个丑数的指针位置加一,因为它对应的那次乘法使用完了。

    class Solution:
        def nthUglyNumber(self, n: int) -> int:
            dp = [0]*(n+1)
            dp[1] = 1
            p2= p3 = p5 = 1
            for i in range(2,n+1):
                num2,num3,num5 = dp[p2]*2,dp[p3]*3,dp[p5]*5
                dp[i] = min(num2,num3,num5)
                if dp[i] == num2:
                    p2 +=1
                if dp[i] == num3:
                    p3 +=1
                if dp[i] == num5:
                    p5 +=1    
            return dp[n]
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15

    2、给出n个数字 a_1,…,a_n,问最多右多少不重叠的非空区间,使得每个区间内数字的xor(异或和)都等于0

    解析:

    找出最大的k,使得存在k个区间(l(i),r(i)),满足
    1<=l(i)<=r(i)<=n (1<=i<=k), r(i) a[l(i)] xor a[l(i)+1] xor …. xor a[r(i)] ==0 (1<=i<=k)
    例如:
    当输入为[3, 0, 2, 2]时,答案为2,存在2个区间[0] 和 [2, 2]满足;
    当输入为[2, 2, 0, 2, 2]时,答案为3,[2, 2],[0] 和[2, 2]满足。

    a=[3,0,2,2]
    num = set([0])
    last = 0
    ans = 0
    for i in a:
        last ^= i
        if last in num: 
            print(last)
            ans += 1
            num = set([0])    #
            last = 0
        else:
            num.add(last)
    print(ans)
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
  • 相关阅读:
    苹果系统(MacOS)无法下载Android SDK或下载缓慢解决办法
    PSP - 蛋白质序列提取 Transformer 蛋白质语言模型 ESM2 特征
    F5负载均衡融入新理念,全栈分布式云可持续发展
    数据探索与分析的瑞士军刀:深入Python的pandas库
    [CVE-2021-45105] Apache Log4j2 漏洞复现与原理详细分析
    java8 Stream api详解
    vue3.2的发布的release.js源码
    【Java】Object 类
    第二章 爬虫的实现原理和技术(一)
    pmap gdb 分析堆外内存泄露情况
  • 原文地址:https://blog.csdn.net/weixin_43935696/article/details/126209791