找到 34423 篇文章 关于编程

C++ 中的墙和门

Arnab Chakraborty
更新于 2020-11-18 11:56:50

455 次浏览

假设我们有一个 m x n 的二维网格,它初始化了以下三种可能的值:-1 表示墙壁或障碍物。0 表示门。INF 这表示无穷大,表示空房间。这里 2^31 - 1 = 2147483647 是 INF,因为我们可以假设到门的距离小于 2147483647。用每个空房间到其最近门的距离填充每个空房间。如果无法到达门,则应填充 INF。所以,如果输入类似于INF-10INFINFINFINF-1INF-1INF-10-1INFINF那么输出将是3-101221-11-12-10-134要解决这个问题,我们将遵循以下步骤:定义一个数组 dir ... 阅读更多

C++ 中的 BST 中序后继

Arnab Chakraborty
更新于 2020-11-18 11:53:50

125 次浏览

假设我们有一棵二叉搜索树和其中的一个节点,我们需要在 BST 中搜索该节点的中序后继。众所周知,节点 p 的后继是键值大于 p.val 的最小节点。所以,如果输入类似于 root = [2, 1, 3],p = 1,则输出将是 2,要解决这个问题,我们将遵循以下步骤:定义递归方法 inorderSuccessor(),它将接收 root 和 p如果 root 为空,则:返回 nullif root 的值大于 p 的值){          返回 inorderSuccessor(root->right, p);   ... 阅读更多

C++ 中的之字形迭代器

Arnab Chakraborty
更新于 2020-11-18 11:51:10

209 次浏览

假设有两个一维数组,我们需要实现一个迭代器,它将交替返回它们的元素。将有两种方法:next() - 获取下一个元素hasNext() - 检查下一个元素是否存在。所以,如果输入类似于 v1 = [1, 2] v2 = [3, 4, 5, 6],则输出将是 [1, 3, 2, 4, 5, 6],要解决这个问题,我们将遵循以下步骤:定义一个队列 q,其中包含对从初始化程序中获取两个数组 v1 和 v2,如果 v1 的大小,则:插入 { 0, 0 } 到 ... 阅读更多

C++ 中的摆动排序

Arnab Chakraborty
更新于 2020-11-18 11:48:16

986 次浏览

假设我们有一个称为 nums 的未排序数组,我们需要就地重新排序它,使得 nums[0] = nums[2] nums[i+1] 为真或 i 为奇数且 nums[i] > nums[i+1] 为假,则交换(nums[i], nums[i + 1])示例 让我们看看以下实现以获得更好的理解: 实时演示#include using namespace std; void print_vector(vector

在 C++ 中查找名人

Arnab Chakraborty
更新于 2020-11-18 11:46:42

124 次浏览

假设我们有 n 个人(从 0 到 n - 1 标记),他们中间可能存在一个名人。当所有其他 n - 1 个人认识 x 但 x 不认识他们中的任何一个时,我们可以说一个人 x 是名人。这里我们需要找到谁是名人,或者验证是否不存在名人。我们只允许向人“A”询问一个问题,“你好,A。你认识 B 吗?”以获取 A 是否认识 B 的信息。我们需要询问最少数量的问题才能找到 ... 阅读更多

在 C++ 中编码和解码字符串

Arnab Chakraborty
更新于 2020-11-18 11:44:30

4K+ 次浏览

假设我们有一个字符串列表。我们需要设计一个算法,可以将字符串列表编码为一个字符串。我们还需要制作一个解码器,将其解码回原始字符串列表。假设我们在这些机器上安装了编码器和解码器,并且有两个不同的函数如下:机器 1(发送方)具有函数string encode(vector

C++ 中的回文排列 II

Arnab Chakraborty
更新于 2020-11-18 11:41:53

178 次浏览

假设我们有一个字符串 s,我们需要找到它的所有回文排列,并且不会重复。如果没有回文排列,则只需返回空字符串。所以,如果输入类似于“aabb”,则输出将是 ["abba", "baab"]要解决这个问题,我们将遵循以下步骤:定义一个数组 ret定义一个函数 solve(),它将接收 s、sz、一个无序映射 m、idx 并将其初始化为 0,如果 sz 与 0 相同,则:在 ret 的末尾插入 s返回evenFound := false定义一个集合 visited对于 m 的每个键值对 it,执行:如果 ... 阅读更多

C++ 中的图有效树

Arnab Chakraborty
更新于 2020-11-18 11:39:10

241 次浏览

假设我们有 n 个节点,它们从 0 到 n-1 标记,以及一个无向边列表 [u, v],我们需要定义一个函数来检查这些边是否构成一个有效的树。所以,如果输入类似于 n = 5,并且 edges = [[0, 1], [0, 2], [0, 3], [1, 4]],则输出将为 true要解决这个问题,我们将遵循以下步骤:定义一个函数 dfs(),它将接收节点、par、图以及另一个名为 visited 的数组,如果 visited[node] 与 1 相同,则:返回 true如果 visited[node] 与 2 相同,则 ... 阅读更多

C++ 中的 3Sum 小于

Arnab Chakraborty
更新于 2020-11-18 11:36:55

265 次浏览

假设我们有一个包含 n 个整数的数组,称为 nums,我们还有一个目标,我们需要找到索引三元组 (i, j, k) 的数量,这里 i、j、k 都在范围 0 到 n - 1 内,并且满足条件 nums[i] + nums[j] + nums[k] < target。所以,如果输入类似于 nums = [-2, 0, 1, 3],并且 target = 2,则输出将是 2,因为有两个三元组的和小于 2:[-2, 0, 1] 和 [-2, 0, 3]。要解决这个问题,我们将遵循以下步骤:ret ... 阅读更多

在 C++ 中验证二叉搜索树中的前序序列

Arnab Chakraborty
更新于 2020-11-18 11:35:02

111 次浏览

假设我们有一系列数字;我们需要检查它是否是二叉搜索树的正确前序遍历序列。我们可以假设序列中的每个数字都是唯一的。考虑以下二叉搜索树:所以,如果输入类似于 [5, 2, 1, 3, 6],则输出将为 true要解决这个问题,我们将遵循以下步骤:itr := -1low := -infinity对于初始化 i := 0,当 i < preorder 的大小,更新(将 i 增加 1),执行:x := preorder[i]如果 x < low,则:返回 false当 (itr >= 0 且 preorder[itr] ... 阅读更多

广告

© . All rights reserved.