找到 34423 篇文章 相关编程

Python 中的 LFU 缓存

Arnab Chakraborty
更新于 2020 年 7 月 21 日 09:00:43

2K+ 次查看

假设我们想要设计和实现一个用于最不常用 (LFU) 缓存系统的 数据结构。它应该支持以下操作:get(key) – 如果键存在于缓存中,则使用它获取键的值,否则返回 -1。put(key, value) – 如果键不存在,则使用它设置或插入值。当缓存达到其最大容量时,在插入新元素之前,它应该使最不常用的元素失效。因此,如果 LFUCache 初始化容量为 2 并调用这些方法 cache.put(1, 1); cache.put(2, 2); ... 阅读更多

C++ 中将 N 叉树编码为二叉树

Arnab Chakraborty
更新于 2020 年 7 月 21 日 08:57:15

485 次查看

假设我们有一个 N 叉树。我们必须将该树编码成一个二叉树。我们还必须制作反序列化器以将二叉树反序列化为 N 叉树。因此,如果输入如下所示,则输出将是若要解决此问题,我们将遵循以下步骤:定义一个函数 encode(),它将获取根节点,如果根节点有效,则:返回 nullnode = 一个值为 root 的新树节点如果 root 的子节点大小不为 0,则:node 的左子节点 := encode(root 的子节点 [0])curr = node 的左子节点对于初始化 i := 1,当 i < root 的子节点大小时,... 阅读更多

C++ 中序列化和反序列化 N 叉树

Arnab Chakraborty
更新于 2020 年 7 月 21 日 08:53:52

341 次查看

假设我们有一个 N 叉树,我们必须对其进行序列化和反序列化。众所周知,序列化是将数据结构或对象转换为一系列位的过程,以便我们可以将其存储在文件或内存缓冲区中,并且以后可以在相同或不同的计算机环境中重建它。在这里,我们必须设计一种算法来序列化和反序列化 N 叉树。N 叉树是有根树,其中每个节点最多有 N 个子节点。因此,如果输入如下所示,则输出将是序列化:1 ... 阅读更多

C++ 中的单词方阵

Arnab Chakraborty
更新于 2020 年 7 月 21 日 08:49:06

244 次查看

假设我们有一组单词(所有单词都是唯一的),我们必须找到所有单词方阵,并且我们可以从中构建。如果第 k 行和列读取完全相同的字符串,则单词序列形成有效的单词方阵,其中 0 ≤ k < numRows 和 numColumns 的最大值。例如,单词序列 ["ball", "area", "lead", "lady"] 将构成一个单词方阵,因为每个单词在水平和垂直方向上读取都相同。ballarealeadlady因此,如果输入类似于 ["area", "lead", "wall", "lady", "ball"],则输出将是 [[ "wall", "area", "lead", "lady"], ... 阅读更多

C++ 中的最小唯一单词缩写

Arnab Chakraborty
更新于 2020 年 7 月 21 日 08:45:17

248 次查看

假设我们有一个字符串,例如“word”,并且包含以下缩写:["word", "1ord", "w1rd", "wo1d", "wor1", "2rd", "w2d", "wo2", "1o1d", "1or1", "w1r1", "1o2", "2r1", "3d", "w3", "4"]。我们还有一个目标字符串和字典中的一组字符串,我们必须找到此目标字符串的缩写,其长度尽可能小,并且不与字典中字符串的缩写冲突。此处,缩写中的每个数字或字母都被视为长度 = 1。例如,缩写“a32bc”的长度为 4。因此,如果 ... 阅读更多

C++ 中的完美矩形

Arnab Chakraborty
更新于 2020 年 7 月 21 日 08:46:27

181 次查看

假设我们有 N 个轴对齐的矩形,我们必须检查它们是否共同形成了矩形区域的精确覆盖。此处,每个矩形都表示为左下角点和右上角点。因此,单位正方形表示为 [1, 1, 2, 2]。(左下角点为 (1, 1),右上角点为 (2, 2))。因此,如果输入类似于 rectangles = [[1, 1, 3, 3], [3, 1, 4, 2], [3, 2, 4, 4], [1, 3, 2, 4], [2, 3, 3, 4]],则输出将为 true,因为所有 5 个矩形共同形成了精确的 ... 阅读更多

C++ 中重新排列字符串 k 个距离分开

Arnab Chakraborty
更新于 2020 年 7 月 21 日 08:36:50

491 次查看

假设我们有一个非空字符串 s 和一个整数 k;我们必须重新排列字符串,以便相同的字符至少彼此相距 k 个距离。给定字符串为小写字母。如果没有办法重新排列字符串,那么我们将返回一个空字符串。因此,如果输入类似于 s = "aabbcc",k = 3,则输出将是 "abcabc",这是因为相同的字母彼此至少相距 3 个距离。若要解决此问题,我们将遵循以下步骤:ret := 空字符串定义一个映射 mn := s 的大小对于 ... 阅读更多

C++ 中最多包含 k 个不同字符的最长子字符串

Arnab Chakraborty
更新于 2020 年 7 月 21 日 08:27:55

1K+ 次查看

假设我们有一个字符串;我们必须计算包含最多 k 个不同字符的最长子字符串 T 的长度。因此,如果输入类似于 s = "eceba",k = 2,则输出将是 3,因为 T 是 "ece",其长度为 3。若要解决此问题,我们将遵循以下步骤:ans := 0定义一个映射 mn := s 的大小x := 0对于初始化 j := 0,i := 0,当 j < n 时,更新(将 j 增加 1),执行:-(将 m[s[j]] 增加 1)如果 m[s[j]] 等于 1,则:-(将 x 增加 1)当 (x > k 且 i k && i

Python 中矩阵中的最长递增路径

Arnab Chakraborty
更新于 2020 年 7 月 23 日 07:28:09

484 次查看

假设我们有一个矩阵;我们必须找到最长递增路径的长度。从每个单元格,我们都可以移动到四个方向:左、右、上或下。我们不能沿对角线移动或移出边界。因此,如果输入类似于994668211,则输出将是 4,因为最长递增路径是 [3, 4, 5, 6]。若要解决此问题,我们将遵循以下步骤:定义一个函数 solve()。这将获取 i、j、矩阵如果 dp[i, j] 不为零,则返回 dp[i, j]dp[i, j] := 1temp := 0对于 r 在范围 i-1 到 i+2 中,对于 c 在 ... 阅读更多

C++ 中到所有建筑物的最短距离

Arnab Chakraborty
更新于 2020 年 7 月 23 日 07:28:47

573 次查看

假设我们想在一个空地上建造一栋房子,它到达所有建筑物的距离最短。我们只能沿四个方向移动,例如上、下、左和右。我们有一个 2D 网格,其值为 0、1 或 2,其中:-0 表示我们可以自由通过的空地。1 表示我们无法穿过的建筑物。2 表示我们无法穿过的障碍物。因此,如果输入类似于102010000000100,则输出将是 7,因为给定三个建筑物位于 (0, 0)、(0, 4)、(2, 2),并且障碍物位于 ... 阅读更多

广告

© . All rights reserved.