zoukankan      html  css  js  c++  java
  • 拼多多2021秋招笔试题

    2020.09.01 19:00 开发岗编程笔试
    拼多多的笔试题还是略难一点的(对比深信服),但比不上华为300分的题难度,华为的题分值是有梯度的(100、200、300),只需100分即可通过

    第一题

    将n*n矩阵分8个区域打印图形,从右上角逆时针标记对应区域的数字(1~8)
    图形

    示例:

    n=4
    0 2 1 0
    3 0 0 8
    4 0 0 7
    0 5 6 0
    n=5:
    0 2 0 1 0
    3 0 0 0 8
    0 0 0 0 0
    4 0 0 0 7
    0 5 0 6 0
    

    思路:
    区分这几组大小关系即可填入对应位置

    • i与n/2
    • j与n/2
    • i与j
    • i+j与n

    第二题

    n*m 01矩阵可以移动任意一个1,求移动后1的连通块最大大小

    思路:

    • 先dfs/bfs求每个连通块的大小
    • 枚举所有节点0,判断周围4个方向相邻1个连通块个数是否为全部连通块的个数
      • 若是 答案为:周围连通块大小之和
      • 若否 答案为:周围连通块大小之和 + 1 (可以从其他连通块移动1填到此节点0)

    第三题

    01背包问题,n<200,V<5000。v[i]、c[i]可为负数,表示装入后总容量可增大/总价值会减少

    • 滚动数组
      通过60%
    • 对v[i]排序,将v[i]<=0,c[i]>=0先放入背包,更改背包容量
      通过64%
    • 待解决

    第四题

    求1~N(N<1000000000) 内有多少个整数可以整除集合(Y={Y_1,Y_2...Y_m}(mle 20))中某个元素

    思路:容斥原理
    注意到 1~N 内整除 x 的整数个数为 N/x,根据容斥原理,答案为

    [sum {N over Y_i} - sum_{i e j} {N over Y_i*Y_j} + sum_{i e j,i e k,j e k} {N over Y_i*Y_j*Y_k}- ... ]

    注意:Y集合首先要调整为全部元素互质的集合,即不存在 (Y_i = k*Y_j)

  • 相关阅读:
    [hdu1402]A * B Problem Plus(NTT)
    拦截导弹问题(Noip1999)
    删数问题(Noip1994)
    1217:棋盘问题
    随笔功能测试
    教师派8
    教师派7
    教师派6
    教师派5
    教室派4
  • 原文地址:https://www.cnblogs.com/izcat/p/13599001.html
Copyright © 2011-2022 走看看