假设在一个社交群体中,有 N 个不同的人,其唯一的整数 ID 从 0 到 N-1。这里我们有一个日志列表,其中每个 logs[i] = [time, id_A, id_B] 包含一个非负整数时间戳,以及两个不同人的 ID。每个日志都显示了两个人成为朋友的时间。如果 A 与 B 是朋友,则 B 与 A 也是朋友。假设一个人 A 与另一个人 B 相识,如果 A 与 B 是朋友,或者 A 是与 B 相识的人的朋友。我们必须找到…… 阅读更多
假设我们有一个损坏的计算器,其显示屏上显示一个数字,我们只能执行两个操作-加倍-这将把显示屏上的数字乘以 2,或者;递减-这将把显示的数字减少 1,最初,计算器显示数字 X。我们必须找到显示数字 Y 所需的最小操作次数。因此,如果输入类似于 X = 5 且 Y 为 8,则输出将为 2,因为递减一次,然后加倍它要解决这个问题,我们将遵循以下步骤-res…… 阅读更多
假设我们有一个字符数组,表示 CPU 需要执行的任务。这包含大写字母 A 到 Z,其中不同的字母代表不同的任务。可以不按原始顺序执行任务。每个任务都可以在一个间隔内完成。对于每个间隔,CPU 可以完成一项工作或只是空闲。但是,有一个非负冷却间隔称为 n,这意味着在两个相同的任务之间,必须至少有 n 个间隔 CPU 正在执行不同的任务或只是空闲。我们必须找到 CPU 完成…… 阅读更多
假设我们有一个字符串 s 和一个非空字符串 p,我们必须找到 p 的所有字谜在 s 中的起始索引。字符串仅由小写字母组成,并且字符串 s 和 p 的长度均不大于 20 和 100。例如,如果 s:“cbaebabacd” p:“abc”,则输出将为 [0, 6],索引 0 处是“cba”,另一个是“bac”,这些是“abc”的字谜。要解决这个问题,我们将遵循以下步骤-定义一个映射 m,n := s 的大小,设置 left := 0,right…… 阅读更多
假设我们有一个数据结构,它支持平均 O(1) 时间内的所有以下操作。insert(val)-这将插入一个项目 val 到集合中,如果它还不存在。remove(val)-这将从集合中删除一个项目 val,如果它存在。getRandom-这将从当前元素集中返回一个随机元素。每个元素都必须具有相同的被返回概率。要解决这个问题,我们将遵循以下步骤-对于初始化,定义一个父映射和元素数组对于 insert() 函数,它将采用 val 作为输入如果 val 不存在于父映射中,或者…… 阅读更多