问题 1
Amazon 的数据工程师正在努力对他们的服务器链进行分区。有一个由 n 个服务器组成的线性链,编号从 1 到 n,其中与第 i 个服务器关联的 cost 参数由数组 cost[i] 表示。这些服务器需要被划分成 k 个不同的服务器链。对服务器链服务器 [i: j] 进行分区的成本定义为 cost[i] + cost[j]。总成本是每个服务器链的分区成本之和。
给定 n 个服务器、一个数组 cost 和一个整数 k,找到作的最小和最大可能总成本,并以大小为 2 的数组的形式返回它们:[minimum cost, maximum cost]。
注意:数组的分区意味着将数组按顺序拆分为两个或多个部分,其中每个元素恰好属于一个分区。对于数组 [1, 2, 3, 4, 5],有效分区将是 [[1], [2, 3], [4, 5]],而 [[1, 2], [2, 3], [4, 5]] 和 [[1, 3], [2, 4, 5]] 将被视为无效分区。
问卷调查 2
Amazon Alexa 开发团队需要分析不同 Alexa 技能的 numSkills 请求日志,以确保最佳性能和用户参与度。
技能的索引从 1 到 numSkills,日志作为大小为 m 的 2D 数组 requestLogs 提供,其中
requestLogs[i] = [skill_ID, timeStamp]
表示在时间 timeStamp 处向 ID 为 skill_ID 的技能发出了请求。
您将获得:
一个整数 numSkills,
一个 2D 整数数组 requestLogs,
一个整数 timeWindow(表示回溯期),以及
包含 q 个查询的 queryTimes 数组。
任务:
对于每个 queryTime[i],确定在时间间隔
[queryTime[i] - timeWindow, queryTime[i]] 内未收到请求的技能数量。
返回一个长度为 q 的数组,其中包含每个查询的结果。
注意:
如果对于某个查询,所有 numSkills 都在给定的时间间隔内收到了请求,则答案为 0。