2024.04.10 淘天集团 - 业务技术部 - 笔试复盘

248 阅读2分钟

单项选择

  1. web socket
  2. chmod
  3. 哪种排序是通过递归实现的排序?
  4. 观察者/中介者/命令/状态
  5. Prim算法
  6. 物理数据库设计

多项选择

  1. Linux Shell定义数组
  2. 二分查找中的关键词比较序列
  3. IP协议
  4. 设计模式:行为型模式
  5. 二叉搜索树的层序遍历
  6. 数据库事务的概念和特性
  7. 文件保护方法

C++ 单项选择

  1. 重载cmp,用cmp定义sort,问排序后的数值是什么

C++ 多项选择

  1. const expr函数

编程题

1. 数组的权值(III)

当前存在一长度为 n 的数组 a ,我们设数组内的众数为对应数组的权值。

我们要在数组 a 中取出 k 个数字组成一个新数组,令新数组权值取得最大值。

数据范围: 1n1051 ≤ n ≤ 10^51k1051 ≤ k ≤ 10^5

OS:不知道为啥我自己编的样例都能过,交上去一直0%,太离谱了

示例1:

输入: n = 6, k = 3, a[n] = {2, 2, 2, 1, 1, 1}
输出: 2

示例解释: 在示例中,[2, 2, 1]和[2, 2, 2]都满足题干条件,对应数组权值能够取到最大值2。

2.

当前存在一个长度为 n + 1 的数组 a ,且数组的前 n 项满足 aai = aai + 1 modmod ii 数组 a 最后一项为 x ,请问数组的第 k 位值为多少?

数据范围:忘了

思路: 思考一下以后发现整个数组一共分为三段,从后往前 分别是:

  1. a[n]a[n] == xx
  2. a[n1]a[n - 1] == xx % (n1)(n - 1)a[a[n]]a[a[n]] == a[n1]a[n - 1] % (a[n])(a[n]), 数值为xx % (n1)(n - 1)
  3. a[a[n1]]a[a[n - 1]] == a[n1]a[n - 1] % (a[n1])(a[n - 1])a[0]a[0] ,数值为 0 。

所以只需要判断三段数据的边界情况,即可完成本题。

[按照这种思路的完成度为96.2%]

3.

基环树为含有 n 个点 n 条边,且不包含重边和自环的连通图。

初始时存在一个图,初始有 n 个结点和 0 条边,每次给出连接的两节点 u、v,求两节点所在连通块是否为基环树。

数据范围:忘了

思路:不会,没学过:(