找到 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++ 中二叉搜索树中的中序后继

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 val of root val val){          return 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 相同,则:将 s 插入 ret 的末尾返回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 Smaller

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.