找到 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(),它将接收根节点,如果根节点有效,则:返回 null;node = 新建一个值为根节点值的树节点;如果根节点的子节点大小不为 0,则:node 的左子节点 := encode(根节点的 children[0]);curr = node 的左子节点;for 初始化 i := 1,当 i < 根节点的子节点大小,... 阅读更多

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 的大小;for... 阅读更多

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;for 初始化 j := 0,i := 0,当 j < n,更新 (j 增加 1),执行:-(m[s[j]] 增加 1);如果 m[s[j]] 等于 1,则:-(x 增加 1);while (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] := 1;temp := 0;for r in range i-1 to i+2, do;for c in ... 阅读更多

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

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

573 次查看

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

广告
© . All rights reserved.