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)

  • 相关阅读:
    ASP.NET 设计模式 读书摘记1
    [Exception]Sys.WebForm.PageRequestManagerServerErrorException:500
    [Exception] 当前 TransactionScope 已完成
    [Javascript]客户端检测
    c.Tom and paper
    Currency System in Geraldion (Codeforces 560A)
    巡逻机器人(BFS)
    比赛建金字塔问题解题报告
    除法(暴力)
    比赛找丢失的数解题报告T
  • 原文地址:https://www.cnblogs.com/izcat/p/13599001.html
Copyright © 2011-2022 走看看