当前位置: 首页 > 编程笔记 >

C ++中所有可能的子阵列中可能的最小LCM和GCD

龚镜
2023-03-14
本文向大家介绍C ++中所有可能的子阵列中可能的最小LCM和GCD,包括了C ++中所有可能的子阵列中可能的最小LCM和GCD的使用技巧和注意事项,需要的朋友参考一下

假设我们有一个大小为N的数组arr。它有N个正数。我们必须找到所有可能的子数组的最小元素。假设数组为{2,66,14,521},则最小LCM为2,GCD为1。

我们将使用贪婪的方法解决此问题。如果减少元素数量,则LCM会减少,而如果增加数组大小,则GCD会减少。我们需要从数组中找到最小的元素,它是单个元素,这是LCM所必需的。对于GCD,GCD将是数组所有元素的GCD。

示例

#include <iostream>
#include <algorithm>
using namespace std;
int minimum_gcd(int arr[], int n) {
   int GCD = 0;
   for (int i = 0; i < n; i++)
   GCD = __gcd(GCD, arr[i]);
   return GCD;
}
int minimum_lcm(int arr[], int n) {
   int LCM = arr[0];
   for (int i = 1; i < n; i++)
   LCM = min(LCM, arr[i]);
   return LCM;
}
int main() {
   int arr[] = { 2, 66, 14, 521 };
   int n = sizeof(arr) / sizeof(arr[0]);
   cout << "LCM: " << minimum_lcm(arr, n) << ", GCD: " << minimum_gcd(arr, n);
}

输出结果

LCM: 2, GCD: 1
 类似资料:
  • 给定一个数组,求从所有可能的子数组中选择的最小元素和次最小元素的最大和。更正式地说,如果我们写出大小为 这个问题是关于GFG的,但我不理解它的解释。 请任何人给出它在O(n)时间复杂度下的解。

  • 我看到一个问题,要求它找到所有相邻子阵列的最小值。例如,对于数组A=[1,2,3],答案将是一个包含[1,2,3,1,2,1]的数组B<怎么做- 我所做的是,构建了一个段树,但是它不包含所有连续子数组的最小值。 我也不认为我可以使用“脱钩”,因为我不必在特定长度的子数组中找到最小值。 那么,我如何获得所有连续子阵列(B阵列)的最小值?

  • 我试图得到与输入arrayList相同长度的ArrayList的所有可能的排列。也就是说,1,2,3的ArrayList将导致123, 132, 213, 231, 321, 312,不包括1, 2, 12, 13等较短的排列。 坐标是一个类,它只有x、y和y,用于保存项目的二维点。 目前,我正在使用这段代码将其打印到控制台,但如果有人能告诉我如何将其存储到ArrayList中,我也将不胜感激

  • 求给定数组的连续子集的最大可能差之和。 我们得到一个由n个非负整数(允许重复元素)组成的数组arr[],求出给定数组中相邻子集的最大差之和。 假设max(s)表示任何子集's'中的最大值,而min(s)表示集合's'中的最小值。我们需要为所有可能的子集找到max(s)-min(s)的总和。 解释: 约束条件: 这是从此处获取的代码,但此代码检查所有可能的子集,而不是连续的子集: 那么如何只得到连续

  • 问题内容: 我需要计算出 仅 在python中所有可能的 大小写 排列的列表,例如,使用ar输入它将返回[‘ar’,’Ar’,’aR’,’AR’] 或arc [‘arc’,’ Arc”,“ ARc”,“ aRc”,“ aRC”,“ ARC”],我知道可能有一些不错的方法,但对于我的一生,我无法弄清楚。 问题答案:

  • 问题内容: 在Python中,我有一个n个列表的列表,每个列表具有可变数量的元素。如何创建包含所有可能排列的单个列表: 例如 我想要 注意,我事先不知道n。我以为itertools.product是正确的方法,但它需要我提前知道参数的数量 问题答案: 您不需要事先知道使用