Tiktok的一道笔试题求助
1404
2023.01.13
2023.01.13
发布于 未知归属地

1 问题: 求每个问题下的子数组个数

  1. 某人生日12/23, 因此对12和23这两个数字情有独钟.
  2. 给定一维数组nums () 和二维数组questions ()
  3. 对questions中每一个question (), 其中
  • i=question[0]代表nums的起始点,
  • j=quesiton[1]代表nums的结束点,
  • k=question[2]要么等于12,要么等于23.

求数组 nums[i:j+1] 的满足以下要求的子数组数量: 该子数组和可被12或23整除

子数组是原数组的连续非空序列

1.1 输入:

  • nums 一维数组
  • questions 二维数组

1.2 输出:

  • ans 一维数组

(ans.length=questions.length), ans[i]代表对questions[i]的计算

1.3 Constraints:

  • 1 <= nums.length <= 6000
  • 1 <= questions.length <=
  • questions[i][0]<questions[i][1]
  • quesitons[i][2] 等于12 或23

2 解决方法

本题可拆分成子问题:

  1. 如果只有一个question, 那么对于nums[i:j+1] 和k ,问题可转换为leetcode原题

974. 和可被 K 整除的子数组

  1. 我们对questions中的每个question计算一遍即可

但最后, 部分案例超时, 因为quesitons太多, 所以该怎么预处理呢?

评论 (7)