找到 34423 篇文章,关于编程

在 C++ 中查找数组中的四个元素 a、b、c 和 d,使得 a+b = c+d

Arnab Chakraborty
更新于 2019年12月19日 07:55:06

645 次浏览

假设我们有一个整数列表。我们的任务是找到四个不同的整数作为两对,如 (a, b) 和 (c, d),使得 a+b = c+d。如果有多个答案,则只打印一个。假设数组元素如下:A = [7, 5, 9, 3, 6, 4, 2],则对可以是 (7, 3) 和 (6, 4)。这里我们将使用哈希技术。我们使用和作为键,对作为哈希表中的值。我们必须遵循以下步骤来解决此问题。对于从 0 到 n – ... 阅读更多

在 C++ 中从给定的三个已排序数组中查找三个最接近的元素

Arnab Chakraborty
更新于 2019年12月19日 07:52:51

307 次浏览

假设我们有三个已排序的数组 A、B 和 C,以及来自 A、B 和 C 的三个元素 i、j 和 k,使得 max(|A[i] – B[i]|, |B[j] – C[k]|, |C[k] – A[i]|) 最小化。因此,如果 A = [1, 4, 10],B = [2, 15, 20],C = [10, 12],则输出元素为 10、15、10,这三个来自 A、B 和 C。假设 A、B 和 C 的大小分别为 p、q 和 r。现在按照以下步骤解决此问题 −i := 0,j := 0 和 k := 0现在执行以下操作 ... 阅读更多

在 C++ 中查找已排序数组中频率大于或等于 n/2 的元素。

Arnab Chakraborty
更新于 2019年12月19日 07:50:35

115 次浏览

假设我们有一个大小为 n 的数组。此数组已排序。有一个元素的频率大于或等于 n/2,其中 n 是数组中元素的数量。因此,如果数组类似于 [3, 4, 5, 5, 5],则输出将为 5。如果我们仔细观察这些类型的数组,我们可以很容易地注意到频率大于或等于 n/2 的数字也将出现在索引 n/2 处。因此,该元素可以在位置 n/2 处找到示例实时演示源代码:#include using namespace std; int higherFreq(int arr[], ... 阅读更多

在 C++ 中查找数字在偶数位和奇数位上的数字之和

Arnab Chakraborty
更新于 2019年12月19日 07:49:11

979 次浏览

假设我们有一个整数 N,我们必须找到奇数位数字和偶数位数字的和。因此,如果数字类似于 153654,则 odd_sum = 9,even_sum = 15。要解决此问题,我们可以从最后一位提取所有数字,如果原始数字的位数为奇数,则最后一位必须是奇数位置,否则它将是偶数位置。处理一个数字后,我们可以将状态从奇数反转为偶数,反之亦然。示例实时演示#include using namespace std; bool isOdd(int x){    if(x % 2 == 0)   ... 阅读更多

在 C++ 中以 O(n) 的时间复杂度和 O(1) 的额外空间查找数组中的重复项

Arnab Chakraborty
更新于 2019年12月19日 07:47:38

89 次浏览

假设我们有一个从 0 到 n-1 的数字列表。一个数字可以重复任意多次。我们必须在不占用任何额外空间的情况下找到重复的数字。如果 n 的值为 7,列表类似于 [5, 2, 3, 5, 1, 6, 2, 3, 4, 5]。答案将是 5、2、3。要解决此问题,我们必须遵循以下步骤 −对于列表中的每个元素 e,执行以下步骤 −sign := A[e 的绝对值]如果符号为正,则将其设为负否则,它是一个 ... 阅读更多

在 C++ 中查找前 N 个素数的乘积

Arnab Chakraborty
更新于 2019年12月19日 07:46:12

280 次浏览

假设我们有一个数字 n。我们必须找到 1 到 n 之间素数的乘积。因此,如果 n = 7,则输出将为 210,因为 2 * 3 * 5 * 7 = 210。我们将使用埃拉托色尼筛法查找所有素数。然后计算它们的乘积。示例实时演示#include using namespace std; long PrimeProds(int n) {    bool prime[n + 1];    for(int i = 0; i

在 C++ 中查找从二叉树的根节点到给定节点的距离

Arnab Chakraborty
更新于 2019年12月19日 07:44:44

312 次浏览

假设我们有一棵包含几个节点的二叉树。我们必须找到根节点和另一个节点 u 之间的距离。假设树如下所示:现在 (根节点,6) 之间的距离 = 2,路径长度为 2,(根节点,8) 之间的距离 = 3 等。要解决此问题,我们将使用递归方法搜索左子树和右子树中的节点,并为每个级别更新长度。示例实时演示#include using namespace std; class Node {    public:       int data;    Node *left, *right; }; Node* getNode(int data) {    Node* node = ... 阅读更多

在 C++ 中查找将数字分成四个部分的方法数,使得 a = c 且 b = d

Arnab Chakraborty
更新于 2019年12月19日 07:42:06

167 次浏览

假设我们有一个数字 n。我们必须找到将数字分成部分 (a、b、c 和 d) 的方法数,使得 a = c 且 b = d。因此,如果数字为 20,则输出将为 4。如 [1, 1, 9, 9]、[2, 2, 8, 8]、[3, 3, 7, 7] 和 [4, 4, 6, 6]因此,如果 N 为奇数,则答案将为 0。如果数字可以被 4 整除,则答案将为 n/4 – 1,否则为 n/4。示例实时演示#include using namespace std; int countPossiblity(int num) {    if (num % 2 == 1)       return 0;    else if (num % 4 == 0)       return num / 4 - 1;    else       return num / 4; } int main() {    int n = 20;    cout

在 C++ 中查找二叉树中两个节点之间的距离

Arnab Chakraborty
更新于 2019年12月19日 07:40:31

168 次浏览

假设我们有一棵包含几个节点的二叉树。我们必须找到两个节点 u 和 v 之间的距离。假设树如下所示 −现在 (4, 6) 之间的距离 = 4,路径长度为 4,(5, 8) 之间的长度 = 5 等。要解决此问题,我们将找到 LCA(最近公共祖先),然后计算从 LCA 到两个节点的距离。示例实时演示#include using namespace std; class Node {    public:       int data;    Node *left, *right; }; Node* getNode(int data) {    Node* node = new Node;    node->data = data;    node->left ... 阅读更多

在 C++ 中查找从零到数轴上的 X 所需的跳跃次数

Arnab Chakraborty
更新于 2019年12月19日 07:38:56

209 次浏览

假设我们有一个整数 X。我们必须找到从 0 到达 X 所需的最少跳跃次数。第一次跳跃的长度可以为一个单位,并且每次后续跳跃的长度都比前一次跳跃的长度正好长一个单位。允许在每次跳跃中向左或向右移动。因此,如果 X = 8,则输出为 4。0 → -1 → 1→ 4 → 8 是可能的阶段。如果我们仔细观察,我们可以说如果始终向右跳跃,则跳跃 n 次后,您将 ... 阅读更多

广告

© . All rights reserved.